# Multistack – Lightweight TUI for orchestrating coding agents

> Source: <https://github.com/gi-dellav/multistack>
> Published: 2026-06-14 17:13:47+00:00

Run multiple [zerostack](https://gi-dellav.github.io/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](https://www.conductor.build).

**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

```
brew tap gi-dellav/tap
brew trust gi-dellav/tap   # required for Homebrew 6.0.0+
brew install multistack    # zerostack installed automatically
curl -fsSL https://raw.githubusercontent.com/gi-dellav/multistack/main/install.sh | bash
cargo install multistack
```

You need [zerostack](https://gi-dellav.github.io/zerostack/) on your PATH, plus a recent Rust toolchain.

| 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) |

| Key | Action |
|---|---|
`Esc` |
Return to agent list |
All other keys |
Forwarded to the underlying process |

| Key | Action |
|---|---|
`Enter` |
Confirm |
`Esc` |
Cancel |
`Backspace` |
Delete last character |
Printable chars |
Append to input |

| 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 |

**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)

GPL-3.0-only
