Multistack
June 14, 2026 · View on GitHub
Multistack
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 | bash
Cargo
cargo install multistack
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