Web UI
Besides the terminal TUI, AtomCode ships a built-in browser interface: type /webui in the TUI to launch it, then chat, browse session history, add/edit/delete model providers, and upload images in the browser — and use /sync to mirror one session live between the terminal and the browser. It reuses this machine's login, models, and session history, so there's nothing extra to configure.
After context compaction, retained historical user messages are labeled as historical rather than new requests. Use “View full history” above the conversation to read original turns, reasoning and tool records without changing the current task or draft. Refreshing reloads the session view; /reload reloads configuration and does not compact context.
Start & stop
Run these in the AtomCode TUI input box:
# Launch the webui and open the browser (local server binds 127.0.0.1:13457; phones connect through the relay)
/webui
# Stop the webui server
/webui stop
On launch, AtomCode starts a local HTTP server and opens your browser to a URL like http://127.0.0.1:13457/?token=<one-time token>. The token in the URL is the credential — it's equivalent to a password, so don't share it. The current TUI session is also attached to live sync automatically (see Live sync across devices below).
The local webui binds 127.0.0.1 and connects to the HTTPS relay at https://relay-atomcode.atomgit.com. Scan the QR in the terminal or Remote access dialog with your phone; no VPN is needed. Add --local for local-only access. See Remote Access.
Two ways to run it, and when each stops
The webui server lives in the process that started it; when that process exits, the server stops:
| Started by | Stops when | Good for |
|---|---|---|
/webui inside AtomCode | you run /webui stop, or that AtomCode exits | using the terminal and the browser together, synced to one session |
atomcode webui in a terminal | you press Ctrl+C there, or close that terminal window | using only the browser, or the webui installed as a desktop app |
# Run the webui on its own, without any AtomCode terminal UI
atomcode webui
# Do not open a browser (scripts, desktop app); only print the link
atomcode webui --no-open
# Choose the port or the address to bind
atomcode webui --port 13457 --host 127.0.0.1
- Every start mints a new token and the old link stops working; open the link this start printed. That link works in any browser for as long as this run lasts.
- If the default port
13457is taken (say a/webuiis already running), the next free port is used — go by the printed link. - With the webui installed as a desktop app (Chrome / Edge “Install app”), opening the app while nothing is running shows a page that says how to start it, instead of the browser's “can't reach this page”. Once started, open the newly printed link once.
What the interface offers
The browser UI brings the terminal's capabilities into a graphical interface:
| Area | What you can do |
|---|---|
| Sidebar | Session history grouped by project, search sessions, start a new chat, rename / delete sessions; collapses to an icon rail (a drawer on mobile). |
| Model selector | Switch provider / model right under the input box; same-named models are disambiguated with a provider tag. |
| Model config | Manage provider accounts and multiple models under each account, including protocol, base URL, API key, context window, and the default model. |
| Settings | Theme (light / dark), language (中 / EN), model config, and the remote-access entry. |
| Image attachments | Paste or pick images to send with a message (2 MB each); non-vision models fall back to VL; thumbnails show in history. |
| Tool execution | Tool calls show their arguments and output inline, expandable line by line, both live and in history. |
| Attach menu (+) | Upload an image, pick a file for context, or insert a Skill. |
| Working directory | Switch the working dir, browse folders, create a new folder, set a default working dir. |
Live sync across devices
Behind the webui is a LiveSession: one session can be open in the terminal and multiple browser tabs at once, and every input, streamed AI reply, and tool result is broadcast live to all connected views — a viewer that joins late first receives a snapshot replay.
- When you run
/webui, the current TUI session is attached automatically — messages you send in the terminal appear in the browser, and vice versa. - In another TUI, run
/syncto attach to the running webui session (a/webuimust already be running). /sync off— leave sync and return to a standalone session.- Sync mode supports
/compact. Model changes follow runtime confirmation and are not applied halfway through an active turn. - Uploaded images, the current working directory, and active sessions survive refreshes and view switches.
This makes "start in the terminal, watch progress on a phone / tablet" — or several people watching the same agent session — possible.
Approval modes
A pill in the bottom bar sets how the agent's actions are gated — the browser mirror of the terminal's approval modes. The default is Build.
| Mode | Behaviour |
|---|---|
| Build (default) | Interactive — every file edit and command asks for approval before it runs. |
| Accept Edits | File edits are auto-approved; commands still ask. |
| Plan | Read-only exploration — write and execute tools are blocked so the agent proposes a plan first. |
| Bypass (免审批) | ⚠ Auto-approves everything, including edits and commands. Use with care. |
The mode is process-wide and broadcast over the live channel, so switching it in one tab updates every connected view. It is not written to your config — it resets to Build on restart.
When the agent needs a decision from you mid-task, an interactive question card appears (single choice, multiple choice, or free text) and the turn pauses until you answer. See Interactive Questions for the full behaviour.
Remote access
Run /webui (or atomcode webui standalone), then scan the relay QR with your phone browser to open the same conversation. The devices may use different networks. See Remote Access.
Next
- Remote Access — open the webui from your phone through the HTTPS relay
- Headless & Daemon — the daemon and HTTP/SSE API behind the webui
- Slash Commands — quick reference for
/webui,/syncand more