Open-source terminal control plane for coding agents

Bring every agent session back to one hub.

AgentMux keeps Codex, Claude, Gemini, OpenCode, and plain shells unaware of remote access. Workers own local tmux or PTY sessions, Hub routes identity and WebSockets, Control gives you browser and TUI access from anywhere.

Generate join signal Open Web Control Open-source on GitHub Hub https://agentmux-prev.kinboy.wang · Worker wss://agentmux-prev.kinboy.wang
Hub, Worker, Control and WSS relay architectureClick to inspect

Agent-unaware

No agent SDK, callback server, or vendor-specific remote feature. AgentMux attaches below the agent at the terminal layer.

Cloudflare-ready

Run Hub behind Cloudflare Tunnel or a proxy. HTTPS becomes WSS, and workers keep outbound-only connectivity by default.

Multi-session control

Registered Control supports workspaces, previews, Worker management, and updates. Direct Token sharing stays limited to session list and terminal access.

Architecture in practice

Large technical diagrams are embedded directly into the Hub landing page and can be opened for detail review.

Signal onboarding

Generate a short-lived Worker signal plus a Direct Token share URL, then connect machines and anonymous Control devices.

Click to inspect

Cloudflare-ready deployment

Keep Hub and SQLite on your server while Cloudflare terminates HTTPS and WSS through a tunnel.

Click to inspect

Multi-pane Web Control

Operate multiple long-lived terminal sessions from a compact browser workspace.

Click to inspect

Quick Start

This Hub is already running. Follow the steps below to connect your first machine.

1
Generate signal
2
Run Worker
3
Open Control

Self-host Hub

Only use this when you want to run your own Hub. The Docker image already defaults to port 8081 and stores data under /var/lib/agentmux.

One-line Linux systemd deploy
curl -fsSL https://agentmux-prev.kinboy.wang/deploy-hub.sh | sh
# optional:
# AGENTMUX_PUBLIC_URL=https://hub.example.com AGENTMUX_ADDR=127.0.0.1:8081 curl -fsSL https://agentmux-prev.kinboy.wang/deploy-hub.sh | sh
Run Hub with Docker
docker run -d --name agentmux --restart unless-stopped -p 8081:8081 ghcr.io/kinboyw/agentmux:latest
Run Hub with binary
agentmux hub --addr 0.0.0.0:8081 --data ./agentmux.db
Optional Docker persistence
docker run -d --name agentmux --restart unless-stopped -p 8081:8081 -v agentmux-data:/var/lib/agentmux ghcr.io/kinboyw/agentmux:latest
Optional tunnel when Hub has no public URL
cloudflared tunnel --url http://127.0.0.1:8081
# open the printed https://*.trycloudflare.com URL and generate commands there