by mixpeek
Open-source Claude Code agent multiplexer — run dozens of parallel AI coding agents unattended via tmux
# Add to your Claude Code skills
git clone https://github.com/mixpeek/amuxOpen-source Claude Code agent multiplexer. Run dozens of parallel AI coding agents, unattended, from your browser or phone. Self-healing watchdog, shared kanban board, agent-to-agent orchestration — no build step, no external services. Python 3 + tmux.
amux.io · Getting started · FAQ · Blog
git clone https://github.com/mixpeek/amux && cd amux && ./install.sh
amux register myproject --dir ~/Dev/myproject --yolo
amux start myproject
amux serve # → https://localhost:8822
License: MIT + Commons Clause — free to use, modify, and self-host. Commercial resale requires a separate license.
| Problem | amux's solution | |---------|----------------| | Claude Code crashes at 3am from context compaction | Self-healing watchdog — auto-compacts, restarts, replays last message | | Can't monitor 10+ sessions from one place | Web dashboard — live status, token spend, peek into any session | | Agents duplicate work on the same task | Kanban board with atomic task claiming (SQLite CAS) | | No way to manage agents from your phone | Mobile PWA — works on iOS/Android, offline support with Background Sync | | Agents can't coordinate with each other | REST API orchestration — send messages, peek output, claim tasks between sessions |
No comments yet. Be the first to share your thoughts!
Parses ANSI-stripped tmux output — no hooks, no patches, no modifications to Claude Code.
| Condition | Action |
|-----------|--------|
| Context < 20% | Sends /compact (5-min cooldown) |
| redacted_thinking … cannot be modified | Restarts + replays last message |
| Stuck waiting + CC_AUTO_CONTINUE=1 | Auto-responds based on prompt type |
| YOLO session + safety prompt | Auto-answers (never fires on model questions) |
# Send a task to another session
curl -sk -X POST -H 'Content-Type: application/json' \
-d '{"text":"implement the login endpoint and report back"}' \
$AMUX_URL/api/sessions/worker-1/send
# Atomically claim a board item
curl -sk -X POST $AMUX_URL/api/board/PROJ-5/claim
# Watch another session's output
curl -sk "$AMUX_URL/api/sessions/worker-1/peek?lines=50" | \
python3 -c "import json,sys; print(json.load(sys.stdin).get('output',''))"
Agents get the full API reference in their global memory, so plain-English orchestration just works.
amux register <name> --dir <path> [--yolo] [--model sonnet]
amux start <name>
amux stop <name>
amux attach <name> # attach to tmux
amux peek <name> # view output without attaching
amux send <name> <text> # send text to a session
amux exec <name> -- <prompt> # register + start + send in one shot
amux ls # list sessions
amux serve # start web dashboard
Session names support prefix matching — amux attach my resolves to myproject if unambiguous.
Requires tmux and python3.
git clone https://github.com/mixpeek/amux && cd amux
./install.sh # installs amux to /usr/local/bin
Auto-generates TLS in order: Tailscale cert → mkcert → self-signed fallback. For phone access, Tailscale is the easiest path. Remote access guide →
The PWA uses a service worker for offline support — managing sessions, checking the board, and sending messages all work without a connection. For the service worker to register, your phone's browser must trust the HTTPS certificate. If you're using mkcert, your phone won't trust the CA by default. Serve it over HTTP so your phone can download and install it:
python3 -c "
import http.server, os, socketserver
CA = os.path.expanduser('~/Library/Application Support/mkcert/rootCA.pem')
class H(http.server.BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.send_response(200); self.send_header('Content-Type','text/html'); self.end_headers()
self.wfile.write(b'<a href=\"/rootCA.pem\">Download CA cert</a>')
elif self.path == '/rootCA.pem':
data = open(CA,'rb').read()
self.send_response(200); self.send_header('Content-Type','application/x-pem-file')
self.send_header('Content-Disposition','attachment; filename=\"rootCA.pem\"')
self.send_header('Content-Length',len(data)); self.end_headers(); self.wfile.write(data)
socketserver.TCPServer.allow_reuse_address = True
http.server.HTTPServer(('0.0.0.0', 8888), H).serve_forever()
"
Then open http://<your-ip>:8888 on your phone (use your Tailscale IP if on Tailscale, or LAN IP if on the same Wi-Fi).
iOS: Settings → General → VPN & Device Management → install the profile, then Settings → General → About → Certificate Trust Settings → enable full trust.
Android: Settings → Security → Install a certificate → CA certificate → select the downloaded file.
See how amux compares to other AI coding tools: