Local-first tmux control panel
Know which coding agent needs you¶
vmux watches a swarm of CLI coding agents in tmux, brings the panes needing attention to the top, and turns supported terminal prompts into responses you can tap from the built-in PWA.
Available now · v0.1.0
Install vmux Choose remote access
Route attention¶
Statuses distinguish panes that need input, are working, encountered an error, are idle, or went offline. Tree, active, all, and starred views keep larger tmux sessions navigable.
Make replies cheap¶
Supported dialogs become buttons. You can also send literal text, allow-listed keys, saved snippets, or one broadcast message to several panes.
Resume the reasoning state¶
When you opt in under Settings → Experimental, supported Codex and Claude Code sessions expose structured goals, progress, blockers, verified decisions, visible chat, and “what changed” without making you reconstruct the session from terminal scrollback.
Keep control local¶
The FastAPI backend, WebSocket, and PWA run on your machine. React and htm are vendored; there is no hosted vmux account, telemetry service, or runtime CDN.
Start on localhost¶
vmux requires Python 3.10–3.14 and tmux. Install from PyPI:
Open http://127.0.0.1:8787. A working tmux agent appears automatically; use
vmux --include-shells if you want ordinary shell panes visible too.
Remote access changes the threat model
Anyone who has the bearer token and network reach can send input to your tmux panes. Tailscale is the recommended remote route. Direct LAN access requires a token; public-internet access additionally requires an HTTPS reverse proxy. Never expose vmux's plain-HTTP listener publicly.
Current client and platform status¶
The installable PWA is the public client included here. The native companion
under ios/ is also under development and is not publicly available. vmux is
used daily on macOS; Linux should work but needs more field verification, and
WSL remains unverified.