Hey everyone — quick update on my side project, ACP UI.
A couple of days ago I shared that ACP UI had landed as native iOS and Android apps, so you could connect to any remote ACP agent right from your phone. Cool, but I figured… why stop there?
So I kept hacking, and now there's one more thing:
👉 ACP UI is now a web app
Just open this URL in any browser — desktop or mobile, doesn't matter:
That's it. No install, no setup, no app store. Pop it open and you can connect to any remote ACP agent over WebSocket.
What you can do with it
- Talk to any ACP-compatible agent — Copilot, Claude Code, Codex, Gemini, Qwen, Auggie, Qoder, OpenCode, OpenClaw, you name it
- Run it from your laptop browser, your phone browser, or as a native desktop / iOS / Android app — same UI everywhere
- Connect to remote agents over
ws://(LAN) orwss://(anywhere, e.g. via Dev Tunnels) - Manage multiple sessions, switch between agent modes, pick models, see tool calls as they happen
- Built-in Traffic Monitor so you can watch the raw ACP protocol go by — handy for debugging
- A
$/pingheartbeat keeps your WebSocket alive through NAT and proxy idle timeouts, so your session doesn't randomly drop after a minute
Where ACP UI runs today
- 🌍 Web — https://acp-ui.github.io/
- 🖥️ Desktop — Windows, macOS (Apple Silicon + Intel), Linux (x64 + ARM64)
- 📱 Mobile — Android (APK on Releases), iOS (build from source)
One client, six platforms. Same chat, same sessions, same agents.
Heads up: HTTPS pages need wss://
Since the hosted site is on https://, your browser won't let it open plain ws:// connections (mixed-content rule). Two options:
-
Easy: front your local agent with a
wss://URL — Microsoft Dev Tunnels gives you one for free. -
LAN-only: clone the repo and run
npm run preview:weblocally, thenws://<LAN IP>:3000/works fine.
Both flows are documented in the repo.
How did I pull this off?
One word: Tauri.
Same Vue frontend, swap the runtime — desktop gets a native shell with a system WebView, mobile gets WKWebView / Android WebView, web gets a plain browser tab. The ACP transport, the chat UI, the session management, all of it is reused as-is. The web build just throws away the local-subprocess code path and talks to remote agents over WebSocket only.
Try it / star it / break it
- 🌐 Web app: https://acp-ui.github.io/
- 💻 Source code (MIT): https://github.com/formulahendry/acp-ui
Issues, PRs, and stars all very welcome. Have fun connecting to your favorite agent from… literally anywhere.
Top comments (0)