Skip to content

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.

Pre-release beta · v0.1.0 in preparation

Install from source Choose remote access

vmux pane list showing coding agents grouped and color-coded by status vmux pane detail showing captured output, a response composer, and shortcut keys

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.

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. The PyPI project is not published yet, so install the current source:

pipx install git+https://github.com/imitation-alpha/vmux.git
vmux

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. A separate native iOS companion is under development, is not publicly available, and is outside this MIT repository. vmux is used daily on macOS; Linux should work but needs more field verification, and WSL remains unverified.

Continue