amux

Agent Multiplexer — persistent tmux sessions for AI coding agents.

ghostty — ~/projects
zsh
switch session
>
0:zsh
⇧⌘O switch session

Features

Everything you need to manage AI coding agents across projects.

🔁

Persistent Sessions

Each agent gets a deterministic tmux session keyed to the directory. Resume exactly where you left off.

⌨️

Session Switcher

Press ⇧⌘O in Ghostty to pop up an fzf selector. Switch any pane to any agent session instantly.

🖥️

TUI Session Manager

Run amux for an interactive picker. Filter, attach, kill, or start new sessions with vim keys.

🔧

Custom Agents

Built-in Claude Code & Codex. Add Gemini, Aider, or any CLI agent via a simple TOML config.

📂

Per-Directory Isolation

Same agent + same directory = same session. Different directories are fully isolated.

Zero Overhead

Single Rust binary. No daemon, no background process. Just a thin wrapper around tmux.


Install

Two commands. Under a minute.

# install via Homebrew
$ brew tap xiaoxiunique/amux
$ brew install amux

# set up aliases + tmux/Ghostty keybindings
$ amux init
Installed shell aliases into ~/.zshrc
Installed tmux keybindings into ~/.tmux.conf.local
Installed Ghostty keybindings into ~/Library/.../ghostty/config

$ source ~/.zshrc && cc # Claude Code is running ✓
# or build from source
$ cargo install --git https://github.com/xiaoxiunique/amux

Config

Built-in agents work out of the box. Add your own in TOML.

# ~/.config/amux/config.toml [[agent]] name = "gemini" alias = "cg" command = ["gemini", "chat"] [[agent]] name = "aider" alias = "ca" command = ["aider"]
# built-in agents (no config needed) cc → claude --dangerously-skip-permissions cx → codex --yolo # same name overrides builtin # new names are appended # re-run `amux init` to update

Commands

Simple CLI, no surprises.

amux run <agent> # launch or reattach agent in cwd
amux init # install aliases + keybindings
amux ls # list managed sessions
amux kill <name> # kill a session
amux config # show resolved config
amux # open TUI session selector