01 · The command center
Every agent. Every machine. One cockpit.
A hub on your tailnet keeps a live map of every repo on every machine you own. The top bar shows the hub and each spoke at a glance.
01 · The command center
A hub on your tailnet keeps a live map of every repo on every machine you own. The top bar shows the hub and each spoke at a glance.
02 · The fleet column
Every codebase on every machine gets one row. Its glyphs show which agents are working, idle or waiting on you, and the file tree follows the spoke you pick.
Pick a spoke and walk its repo. Switch from the working tree to any branch for a read-only look, fold folders open, and copy a file’s path straight into an agent.
Click a file in the tree and it opens in a viewer: text in full, images rendered, read straight from the spoke without leaving the cockpit.
Paste or drop an image into the fleet-wide screenshots pane. Copy its path into any agent, or attach it to a spoke so the agent can read it.
Browse a spoke’s files, download what you need, and upload files or whole folders, all without leaving the cockpit.
The box monitor shows what has drifted (interrupted work, reapable worktrees, orphaned branches) beside live CPU, memory, swap, disk and GPU. Sessions, repos, worktrees and branches are one tab away.
03 · Spokes anywhere
Each spoke is one repo on one machine you control, including a Mac mini or DGX Spark running local models. Agents run there and your code never leaves it. Your private Tailscale network connects them all; the hub only coordinates.
Spokes stack in the second column. Each pane lists the spoke’s branches, its agent sessions with what each one is doing, and the tickets they are working.
Each session is whatever terminal agent you started: Claude Code, Codex, Grok Build, OpenCode, Hermes, or anything else that runs in a terminal. Click one to open it.
04 · Any agent, real terminals
Every session is a real terminal on the spoke, running the TUI you choose. Open more and they line up to the right of their spoke. Each one survives dropped Wi-Fi, laptop sleep and network switches.
5 spokes · 35 terminals · one 5120 × 1440 screen · fictional demo data
05 · iPhone and voice
The same hub, spokes and terminals you drive from the desk. Tap into any session, type with a key deck built for terminal apps, hide it when you only want to read, then swipe back out.
Tap the mic and speak: dictation runs on your phone and lands as text in the session. A spoken fleet briefing is coming next.
Sample voice (AI-generated)
In testing · not yet generally available
Real app screens · fictional demo fleet
06 · G2 glasses
For times when your phone is put away, you can keep track of the most important terminals. The one thing that needs you appears in your view, and a tap on the ring sends simple commands. The iOS voice app integrates with this extension for seamless hands-free operation while you're out and about.
In testing · not yet generally available
Real dev-mux lens screens on a fictional demo fleet · glasses drawn after Even G2 B
07 · Skins
Twenty-two skins. Matrix for the purists. Jellybean for everyone else. Or give every spoke its own: each one picks a skin, and its pane and terminals wear it, so you know which machine you are on at a glance.
matrix→jellybean→per-spokescroll to recolour the fleet
08 · What’s next
Coming soon
Pair each spoke with an AI liaison that watches the sessions in that codebase. A Chief of Staff will coordinate those liaisons, so you can steer development across the fleet by text or voice.
01 / 08
◂ ⠿ claude-canary-gate/demo/release-trainOPS-214waiting for input− 100% + ⛶ ^C ⤢ ✕
> gate the canary on p95 < 250ms for 10 minutes
● Read pipeline/canary.yaml (48 lines)
● Update pipeline/canary.yaml +6 −1
analysis: p95_latency_ms < 250 window: 10m
✓ tests/pipeline.test.sh — 14 passed
Promote the canary to 10% of traffic?◂ ⠿ codex-release-notes/demo/release-trainOPS-216− 100% + ⛶ ^C ⤢ ✕
> list merged PR titles in the promote job
● Read scripts/promote.sh (112 lines)
● Create scripts/release-notes.sh
git log --merges v2.3.0..HEAD
✓ 23 merged PRs collected
Drafting release notes…◂ ⠿ cursor-digest-pins/demo/release-trainOPS-207− 100% + ⛶ ^C ⤢ ✕
> pin every base image by digest
● Edit images/api/Dockerfile +1 −1
● Edit images/web/Dockerfile +1 −1
FROM node:22@sha256:9f1c…
✓ pipeline.test.sh — green
Done · 6 images pinned◂ ⠿ grok-storefront-release/demo/release-trainOPS-210− 100% + ⛶ ^C ⤢ ✕
> build storefront 2.4.0 and smoke it on the canary
● Run make image TAG=2.4.0
● Push registry/storefront:2.4.0
smoke: 18/18 checks against canary
✓ smoke suite passed
Running promote dry-run…◂ ⠿ opencode-smoke-flake/demo/release-trainOPS-219− 100% + ⛶ ^C ⤢ ✕
> why does the canary smoke test flake on cold start?
● Read tests/smoke/canary.sh
● Run make smoke × 20
readiness probe answers before the cache warms
✓ 20/20 green with a 2s warm-up
Writing the fix…◂ ⠿ hermes-release-runbook/demo/release-trainOPS-221− 100% + ⛶ ^C ⤢ ✕
> make the release runbook match the canary gate
● Read pipeline/canary.yaml
● Edit runbook/release.md +14 −3
step 4: hold at 10% until p95 < 250ms for 10m
✓ links checked
Updating the rollback section…◂ ⠿ codex-seasonal-menu/demo/fern-foam-shopSHOP-139− 100% + ⛶ ^C ⤢ ✕
> add the seasonal drinks section
● Edit app/menu/page.tsx +38 −2
● Create promo.test.ts
✓ 9 passed
Adding the SKU fixtures…Fictional demo data
Built on two things you already trust
Tailscale · required
dev-mux runs on your own Tailscale tailnet. The hub, every spoke, your phone and your glasses join it, and none of them is reachable from the public internet. You need a Tailscale account to run dev-mux; solo use fits Tailscale’s free Personal plan.
Tailscale setup guidetmux · the resilience
Every agent runs in a tmux session on its spoke, so the work never depends on your connection. Drop Wi-Fi, close the laptop on the train, switch from home to cellular: the agent keeps going, and the cockpit, phone and glasses reattach exactly where you left off.
The tab problem
Right now the answer lives in a dozen terminal tabs and SSH sessions you tab through by hand — and they drop the moment your Wi-Fi blinks. dev-mux turns the whole fleet into one screen you can actually read.
Hub & spokes
The hub is a robust, hyper-efficient, persistent coordinator. Every session lives in tmux on its spoke and the cockpit reconnects automatically, staying alive across dropped connections, sleeps, and network switches — close your laptop on the train, reopen at your desk, and your agents are exactly where you left them. Each spoke is one of your repos, on a machine you control.
Persistent by design. tmux on each spoke holds sessions through drops, sleeps, and IP changes — the cockpit reconnects automatically.
Bring your own compute. Spokes are your own machines — self-hosted, self-administered. The hub never runs your workloads.
Isolated by deployment. One hub per tenant — a hard boundary, not shared state.
You hold the keys. The hub relays terminals; it never custodies your secrets.
A spoke is any repo, on any machine you control
Surfaces
The same live fleet on the web today — and, soon, in your pocket and on your face.
web-app
payments-api
mobile-app
↳ api-gw
edge-cache
The full fleet in your browser — live terminals, presence, file trees.
Fleet
● 5Your whole fleet in your pocket — see who's waiting, jump into any terminal.
◢ payments-api needs input
“approve the migration” ▸ sent
Hands-free heads-up control. Glance at fleet status, voice a command, one-tap a session.
One cockpit
Real PTYs streamed over WebSocket → SSH → tmux. Open any agent's terminal from the web — and type back. Sessions persist through every network drop.
tmux on each spoke plus automatic reconnect keep every agent alive across drops, sleeps, and network switches.
A live map of devices, hub, and spokes — four-color status at a glance.
Tuned for Claude Code today; the SSH + tmux seam fits any terminal-driven agent.
Most AI dev tools pay for inference and execution on their servers. dev-mux pays for neither — agents run on your spokes, the hub only coordinates. Lower liability for you, structural margin for us.
Pricing
Every plan ships a dedicated hub sized for its fleet — with measured 10× headroom to spare.
or $150/yr · 2 months free
For the indie power user.
Solo is $15/month or $150/yr. It renews automatically until you cancel. Cancel in the billing portal or email support@dev-mux.com.
or $500/yr · 2 months free
For small teams flying together.
Team is $50/month or $500/yr. It renews automatically until you cancel. Cancel in the billing portal or email support@dev-mux.com.
Unique requirements — security,
self-hosted hubs, 100s of parallel agents.
Prices exclude tax, calculated at checkout. Running dev-mux inside your own perimeter? Self-hosted and on-prem hubs are available on the Custom plan.
dev-mux is a control plane — mission control — for running and monitoring fleets of AI coding agents like Claude Code across your own machines: a hosted hub on your tailnet, while your code stays on your machines. It gives you one live cockpit over every terminal, agent, repo, and machine: persistent sessions that never drop, a real-time map of your fleet, and access from a browser, with an iOS app and Even Realities G2 glasses in testing (not yet generally available). You bring the compute; dev-mux never runs your workloads or stores your code.
dev-mux is built on SSH + tmux, not a replacement for them. tmux gives you a persistent session on one machine; SSH gets you into that machine. dev-mux adds the fleet layer on top: one cockpit across every machine at once, a live status map, automatic reconnect, and a browser cockpit (iOS and G2 glasses surfaces are in testing) — so you're not manually SSHing into a dozen boxes and juggling terminal tabs.
No. Your agents run on your own machines (spokes). The hub is a thin relay that brokers terminal access — it never executes your workloads or stores your code.
A spoke is one of your repos running an agent on a machine you control — a laptop, a cloud VM, a Raspberry Pi. You self-host and self-administer them; add as many spokes as you need and the hub keeps a live map of all of them.
No — that's the point. Your sessions live in tmux on each spoke and the cockpit reconnects automatically, so they stay persistent across dropped connections, sleeps, and network changes. Close the lid, switch networks, come back hours later: your agents are right where you left them.
Today it's tuned for Claude Code, but the transport is agent-agnostic — it's SSH + tmux underneath, so any terminal-driven agent runner fits the same seam.
Each tenant gets an isolated hub (a hard boundary, not shared state). Hubs are private to your tailnet by default, you hold your own keys, and your spokes stay self-hosted and self-administered — your code and credentials never leave your perimeter.
No. Everything moves over your own Tailscale (WireGuard) tailnet, encrypted end-to-end between your UIs, hub, and spokes — no one on the network path, dev-mux included, can read your traffic in transit. Your code stays on your self-hosted spokes and is never stored by us, and your hub is a single-tenant instance isolated to your own tailnet. For a guarantee that reaches all the way down to the host itself, Custom hosting runs the hub inside your own perimeter. SOC 2 and SOC 1 attestation are on our roadmap shortly after launch.
Yes. Your spokes are always self-hosted on Solo and Team; the hub itself is managed for you. If you need the hub inside your own perimeter too — self-hosted or on-prem, air-gapped networks, your own compliance boundary — that ships on the Custom plan. It's set up with you rather than sold self-serve, so tell us what you need and we'll scope it.
Open the Tailscale setup guide. It shows the current admin-console steps for defining the hub tag, creating a scoped OAuth client, and copying your credentials and tailnet DNS name into dev-mux.
dev-mux runs over your own tailnet. Solo use fits Tailscale's free Personal plan. A commercial team of around five needs Tailscale's Standard plan (about $8/user/mo) — that's paid to Tailscale, not to us, and your managed hub joins as a single device.
Your hub is provisioned as soon as you subscribe. Bring your own machines — we'll bring the cockpit.
Solo is $15/month or $150/yr. It renews automatically until you cancel. Cancel in the billing portal or email support@dev-mux.com.
Need a self-hosted hub, SSO, or a larger fleet? Talk to us about the Custom plan.