Multistack

June 14, 2026 · View on GitHub

banner

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 --parallel under 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/stop signals from zerostack via Unix sockets, so timers and indicators stay accurate even across headless loop iterations

Install

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)

KeyAction
nSpawn new agent — prompts for a name, creates a git worktree
NSpawn new agent in parallel mode — no prompt, jumps straight to TTY
mSpawn bare agent — no worktree, no --parallel, jumps to TTY
pAdd project — opens directory picker
lRemove project and all its agents
hOpen lazygit in the project (or agent worktree) directory
sOpen $SHELL in the project (or agent worktree) directory
rRename selected agent
dDelete (kill) selected agent
EnterDrop into the selected agent's TTY
/ Move selection
PageUp / PageDownJump to previous / next project header
qQuit
EscQuit (press twice if agents have git conflicts)

TTY view (agent / lazygit / shell)

KeyAction
EscReturn to agent list
All other keysForwarded to the underlying process

Prompt (new agent / rename / new project)

KeyAction
EnterConfirm
EscCancel
BackspaceDelete last character
Printable charsAppend to input

Directory picker

KeyAction
EnterAdd selected directory as a project
EscCancel, return to agent list
/Start filtering directories (type to narrow, Esc to clear)
All other keysNavigate the file tree

Requirements

  • Linux/BSD/macOS (uses Unix domain sockets and PTYs)
  • zerostack v1.5+ built with the status-signals feature (default from v1.5)
  • Rust 1.85+ (2024 edition)

License

GPL-3.0-only