expert0

Run Claude Code from your phone or desktop browser.

expert0 is a small program that wraps the Claude Code CLI. It runs on your machine and gives it a web page, so there is no app to install. You open that page in any browser, phone or desktop: a chat window, live output, a session list, diffs, and an interrupt button.

Claude Code keeps doing the actual work. expert0 just gives it a screen that a phone can use.

Try the live demo

(Read-only. It replays a recorded session, so nothing runs.)


Why I made it

Built expert0 to scratch an itch. I come from a software background, so living in a terminal is normal for me. But Claude Code is a terminal app. On a phone, terminal keyboards have no autocorrect and no swipe typing, which makes real work painful. So I put a real chat page in front of it. A normal text box brings autocorrect and swipe typing back, so the phone is actually nicer to type in than the terminal. It is great for when I am on the go. If it is useful to others, that's a nice added bonus.

I am not always in front of a computer. Traveling, life, raising a toddler. With expert0 I can start or steer a session from my phone. Later I can grab the laptop to review on a full screen or in the IDE. Or I can SSH in and pick the same session up in a terminal with claude --resume. Whatever is most convenient. It is the same session either way.

It does more than quick edits. I have used it to build the software and iterate on itself, compile other binaries, deploy websites (once proper deploy auth is set up), use git in a repo, search online and read through documentation, and run everyday terminal commands. All on the remote Claude Code session.

It handles the whole loop. I can chat to make a change, have it deploy, then pull up the live site to check it, and go again. All from my phone.


Install

Grab the binary and run it. The web UI is built in, so it is one file and zero setup.

mkdir -p ~/bin
curl -fL https://expert0.com/download/expert0-linux-amd64 -o ~/bin/expert0
chmod +x ~/bin/expert0
~/bin/expert0 -dir ~

It listens on 127.0.0.1:8080 by default.


Usage

Every flag has a sensible default, so a bare expert0 just works:

expert0 [flags]

-addr          listen address (default 127.0.0.1:8080)
-dir           folder new sessions start in (default: current)
-claude        Claude Code executable (default: claude on PATH)
-idle-timeout  stop idle sessions after this long, freeing memory;
               they resume on your next message (default 30m, 0 off)
-memcap        MiB cap for helper processes Claude starts;
               a watchdog stops bigger ones (default 2048, 0 off)
-names         session names file (default ~/.expert0/names.json)
-projects      Claude Code transcripts (default ~/.claude/projects)
-v             verbose: log every stream event
-dev           development only: serve the UI from ./web on disk

To use another port, change the part after the colon in -addr, keeping the 127.0.0.1.


Signing in

expert0 uses your existing Claude Code login. If you are already logged in to Claude Code on the machine, it just works. On a fresh machine, a first-run helper in the UI walks you through signing in with a login link, so you never need the terminal.

It works with a monthly Claude subscription (Pro or Max), not just pay-as-you-go API billing. Whatever your Claude Code already uses.


Features


Good to know


Reach it safely

The web UI is not meant to be hosted publicly. The server binds 127.0.0.1 only and never opens a public port. You reach it by forwarding that loopback port to your own device over SSH, then opening the page locally:

ssh -L 8080:127.0.0.1:8080 youruser@yourserver

Then open http://localhost:8080/ on the device running that command, phone or laptop. Do not change -addr to a public address to make it reachable.


Run it as a service

If you want expert0 to persist, so it starts at boot and stays up, create a service. A minimal systemd unit, with the args it needs to run unattended:

[Service]
User=youruser
ExecStart=/home/youruser/bin/expert0 -addr 127.0.0.1:8080 -dir /home/youruser
Restart=on-failure
Environment=HOME=/home/youruser

[Install]
WantedBy=multi-user.target

Then enable it:

sudo systemctl enable --now expert0

Ideas or feedback?

Would love to hear how you'd use it, and what's missing. If some feature would make it click for you, drop me an email at feedback @ expert0.com.

Not affiliated with, endorsed by, or sponsored by any AI company. expert0 is an independent tool that wraps the Claude Code CLI. All trademarks are the property of their respective owners.