Friction going from 1 Claude Code to 4+? Isomux is your agent office. Cute in a useful way.
claude works in your terminal, isomux works in your browserrm -rf/isomux-peer-review to review another agent's work, or /isomux-all-hands to see what everyone is up toSee the full feature list on GitHub.
You need Bun (v1.2+) and the Claude Code CLI installed and authenticated with a Claude Pro or Max subscription.
# Install Bun curl -fsSL https://bun.sh/install | bash # Install Claude Code npm install -g @anthropic-ai/claude-code # Launch Claude Code, then type /login to authenticate claude
git clone https://github.com/nmamano/isomux.git cd isomux bun install bun run dev
That's it; nothing to build or deploy.
Visit http://localhost:4000 in your browser. Click an empty desk to spawn your first agent.
Isomux shines when you run it on your own always-on box/server (like a Mac Mini), and then access it from all your devices.
Your phone and laptop see the same conversations, in real time, with UIs optimized for each. Agents keep running even if you close the browser.
The best way to set this up quickly and securely is by taking advantage of Tailscale (it's free): your server serves Isomux on localhost:4000, and every other device reaches it at <TAILSCALE_SERVER_IP>:4000.
Tip: On your phone, use “Add to Home Screen” for a full-screen app experience.
Install Tailscale on the server, your laptop, and your phone.
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# Find your Tailscale IP
tailscale ip -4
Bonus: Instead of remembering an IP, rename your machine in the Tailscale admin console to something friendly, like my-mac-mini.
Open from any connected device:
http://my-mac-mini:4000
Give this prompt to one of your Isomux agents:
Set up Isomux as an always-on server. Create a systemd user service that auto-rebuilds the UI on start and restarts on failure. Enable lingering so it survives logout.
Isomux has built-in voice input to dictate prompts. This works out-of-the-box locally, but requires HTTPS for Tailscale. To enable voice input with Tailscale, follow these steps.
Open the DNS page of your Tailscale admin console. Enable MagicDNS if not already on, then enable HTTPS Certificates.
sudo tailscale set --operator=$USER
Run this on the server (you can use the built-in terminal in Isomux):
tailscale serve --bg http://localhost:4000
This tells Tailscale to proxy HTTPS traffic to your local Isomux server with a valid certificate. The --bg flag makes it persist across reboots. Next time you visit http://my-mac-mini:4000, Isomux will auto-redirect to HTTPS and the mic button will be active.
Isomux runs as a single Bun process on your machine. It uses the Claude Agent SDK to create and manage agent sessions — one per desk — with no subprocess juggling.
A WebSocket layer keeps every connected device in sync in real time. Open the same URL on your laptop and phone — both see the same office, same conversations.
Agent sessions persist across server restarts. Your agents pick up right where they left off.
There's no database, no cloud dependency, no API key. Isomux piggybacks on your existing Claude CLI authentication and inherits your global Claude skills.
Optionally, pair it with Tailscale to turn any always-on machine into a persistent agent server. Every device on your Tailnet — laptop, phone, tablet — reaches the same Isomux instance at the same URL, with conversations syncing instantly over WebSocket.
For a deeper dive, see the blog post.