Isomux

Friction going from 1 Claude Code to 4+? Isomux is your agent office. Cute in a useful way.

Try the demo →
Get Started ↓ Star on GitHub

Feature Highlights

free · open source · no cloud · no account

See the full feature list on GitHub.

Get Started (run it locally)

1. Prerequisites

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

2. Install & Run

git clone https://github.com/nmamano/isomux.git
cd isomux
bun install
bun run dev

That's it; nothing to build or deploy.

3. Open

Visit http://localhost:4000 in your browser. Click an empty desk to spawn your first agent.

Self-hosted Server Setup (Mac Mini style)

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.

1. Install Tailscale

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.

2. Access from laptop or phone

Open from any connected device:

http://my-mac-mini:4000

3. Make it persistent

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.

Voice Input (optional)

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.

1. Enable HTTPS in Tailscale

Open the DNS page of your Tailscale admin console. Enable MagicDNS if not already on, then enable HTTPS Certificates.

2. Allow Tailscale without sudo

sudo tailscale set --operator=$USER

3. Start the HTTPS proxy

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.

How It Works

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.

Try it now ↑