Run multiple zerostack agents side by side in your terminal, allowing to spawn, watch, rename, kill all underlying processes.
Multistack is designed to be a native, lightweight and open-soruce competitor to Conductor.
What it does
- Spawn parallel agents: each one gets its own PTY, running
zerostack --parallelunder the hood - Live status tracking: see at a glance who's working
[~], done[✓], dead[X], or waiting[ ], with per-agent timers - Drop into any agent: hit Enter on a process to see its full terminal output, keystrokes pass straight through
- Status signal support: multistack listens for
start/stopsignals from zerostack via Unix sockets, so timers and indicators stay accurate even across headless loop iterations
Install
Homebrew (recommended)
brew tap gi-dellav/tap brew trust gi-dellav/tap # required for Homebrew 6.0.0+ brew install multistack # zerostack installed automatically
Script
curl -fsSL https://raw.githubusercontent.com/gi-dellav/multistack/main/install.sh | bashCargo
You need zerostack on your PATH, plus a recent Rust toolchain.
Keybindings
Agent list (normal mode)
| Key | Action |
|---|---|
n |
Spawn new agent — prompts for a name, creates a git worktree |
N |
Spawn new agent in parallel mode — no prompt, jumps straight to TTY |
m |
Spawn bare agent — no worktree, no --parallel, jumps to TTY |
p |
Add project — opens directory picker |
l |
Remove project and all its agents |
h |
Open lazygit in the project (or agent worktree) directory |
s |
Open $SHELL in the project (or agent worktree) directory |
r |
Rename selected agent |
d |
Delete (kill) selected agent |
Enter |
Drop into the selected agent's TTY |
↑ / ↓ |
Move selection |
PageUp / PageDown |
Jump to previous / next project header |
q |
Quit |
Esc |
Quit (press twice if agents have git conflicts) |
TTY view (agent / lazygit / shell)
| Key | Action |
|---|---|
Esc |
Return to agent list |
| All other keys | Forwarded to the underlying process |
Prompt (new agent / rename / new project)
| Key | Action |
|---|---|
Enter |
Confirm |
Esc |
Cancel |
Backspace |
Delete last character |
| Printable chars | Append to input |
Directory picker
| Key | Action |
|---|---|
Enter |
Add selected directory as a project |
Esc |
Cancel, return to agent list |
/ |
Start filtering directories (type to narrow, Esc to clear) |
| All other keys | Navigate the file tree |
Requirements
- Linux/BSD/macOS (uses Unix domain sockets and PTYs)
- zerostack v1.5+ built with the
status-signalsfeature (default from v1.5) - Rust 1.85+ (2024 edition)
License
GPL-3.0-only