Run coding agents as tmux panes.
Each agent is an ordinary program in a tmux session of its own. amx starts it, watches it from outside, and leaves no process of its own running. You get one list to look in on, answer and stop your agents from, and a script gets commands that say what happened in an exit code.
curl -fsSL https://saifulapm.github.io/amx/install.sh | sh
Prebuilt for Linux and macOS, on x86_64 and arm64. amx needs tmux 3.2 or newer. Then run amx setup claude (or pi, codex, opencode) and amx doctor.
amx result in a script.How it works
Each agent is a tmux session
amx new starts the agent in a detached session named amx-<id>, prints the id and exits. There is no daemon: attaching is tmux attaching, and killing amx kills nothing.
One list for all of them
Type amx to open the view. Agents are grouped under ready for review, needs input, working and completed. space opens an agent's conversation and enter attaches to it.
Answer prompts from the list
A permission prompt or a question shows on the agent's row. Answer it on the line under the agent's card, or from any shell with amx answer <id> y, without attaching.
Exit codes for scripts
amx result waits for the turn to end and prints the answer: exit 0 answered, 1 failed, 2 asking a question, 3 timed out. amx sub starts a subagent and waits for it in one call.
A worktree per agent
In a git repository each agent works in its own worktree on amx/<id>. amx diff shows what it changed, the row shows its pull request, and amx sweep clears the ones that landed.
claude, pi, codex and opencode
amx setup <agent> wires the agent's hooks so it reports each turn and question. Any other command still gets a pane and a row, read off its screen.
From a shell
amx new prints the new agent's id and nothing else, and every other command takes that id. amx ls prints a line per agent: its state, its id, how long it has worked, and what it is doing or asking.
$ amx new "port the importer"
port-the-importer-k3f
$ amx ls
working port-the-importer-k3f 4s Running Bash
waiting fix-the-login-bug-a1b 12s Claude needs your permission to use Bash
done tidy-the-imports-d4e 2m the imports are sorted