crew launches, chats with, and manages Claude Code, OpenCode & Cursor agents — each in its own git worktree — without leaving your terminal. Standalone Rust + ratatui.
crew nexum tui-agent-flow ⚙ engine · 5 agents ●2 ✓2 ✗1 $1.050 ◉ 2 marked ╭ agents (5) ────────────────────╮╭ preview ───────────────────────────────────────────────────────╮ │▶ ⠦ cursor add b…$0.42 12s││add billing dashboard endpoint │ │ ◉ ⠦ claude add a…$0.31 40s││ │ │ ◉ ✗ opencode fix f…$0.08 2m ││status ⠦ running │ │ ✓ claude rewri…$0.05 10m││kind agent │ │ ✓ cursor add d…$0.19 1h ││harness cursor · sonnet │ │ ││branch crew/billing-api │ │ ││remote up to date │ │ ││cost $0.420 │ │ ││running 12s ago │ │ ││worktree .crew/worktrees/billing-api │ │ ││ │ │ ││[d]iff [l]og [e]dit [!]shell [P]ush [R]etry [o]wt [x]rm │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ ╰────────────────────────────────╯╰────────────────────────────────────────────────────────────────╯ [q]uit [jk]move [n]ew [enter]chat [d]iff [l]og [e]dit [P]ush [s]top [x]rm [1-4]filter [,]settings [?
A master–detail dashboard that treats agents like a first-class resource.
Every agent runs its harness REPL in a PTY rendered in an embedded pane. Select one, press enter, chat side-by-side. No tmux, no window juggling.
Each agent runs in its own git worktree on a crew/<task> branch — created natively, no external tooling. Work never tangles.
Claude Code, OpenCode, Cursor — launch, resume, and manage them side by side, each with its own model.
Review a worktree diff (colored, searchable) or tail a log that live-follows like tail -f. Scrollbars, / search, n/N.
P commits, pushes the branch, and opens a PR with gh — straight from the dashboard, lazygit-style.
Multi-select with space, bulk stop/remove, quick-filters 1-4, sort by status/cost/recent, jump between failed with ]/[.
Inspired by the best terminal tools — built for agents.
| Capability | crew | claude-squad | lazygit | k9s |
|---|---|---|---|---|
| Multiple agents in one view | ✓ | ✓ | ✓ | · |
| Embedded chat (no tmux) | ✓ | — | — | — |
| Per-agent git worktree | ✓ | ✓ | — | — |
| Cross-harness (Claude/Cursor/OpenCode) | ✓ | · | — | — |
| Diff viewer | ✓ | ✓ | ✓ | · |
| Live log follow | ✓ | · | — | ✓ |
| Commit · push · PR | ✓ | · | ✓ | — |
| Multi-select bulk actions | ✓ | · | — | ✓ |
| Runs standalone (no backend) | ✓ | ✓ | ✓ | ✓ |
Real frames rendered by the binary.
crew nexum tui-agent-flow ⚙ engine · 20 agents ╭ agents (20) ───────────────────╮╭ preview ───────────────────────────────────────────────────────╮ │▶ ▷ claude say hello -││say hello │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││status ▷ resumable │ │ ▷ claud╭ new agent ───────────────────────────────────────────────────────────────╮ │ │ ▷ claud│ Launch an interactive agent │ │ │ ▷ claud│▶ task * (Enter = newline) │ │ │ ▷ claud│┌────────────────────────────────────────────────────────────────────────┐│ │ │ ▷ claud││add auth middleware ││ │ │ ▷ claud││ ││ │ │ ▷ claud││ ││ │ │ ▷ claud│└────────────────────────────────────────────────────────────────────────┘│rm │ │ ▷ claud│ workflow ‹ chat (single agent) › 1/5 │ │ │ ▷ claud│ harness ‹ claude › 1/3 ✓ installed │ │ │ ▷ claud│ model ‹ sonnet › 1/3 │ │ │ ▷ claud│ worktree ‹ current repo (shared) › 2/2 │ │ │ ▷ claud│ images (none — [a] add, [d] remove) │ │ │ ▷ claud│ [tab] next field [←→] change [ Ctrl-S ] launch & chat [esc] cancel│ │ │ ▷ claud│ │ │ │ ▷ claud│ │ │ │ ▷ claud│ │ │ │ │ │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ ╰────────────────────────────────╯╰────────────────────────────────────────────────────────────────╯ [q]uit [jk]move [n]ew [enter]chat [d]iff [l]og [e]dit [P]ush [s]top [x]rm [1-4]filter [,]settings [?
crew nexum tui-agent-flow ⚙ engine · 21 agents ●1 CHAT launched agent_say-hello-489040 — Ctrl- ╭ agents (21) ───────────────────╮╭ chat · typing goes to the agent · [Ctrl-o] leave ──────────────╮ │▶ ⠏ claude say hel… 0s ago││█ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ▷ claude say hello -││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ ╰────────────────────────────────╯╰────────────────────────────────────────────────────────────────╯ CHAT — type to talk · [shift-tab] cycle agent modes · [Ctrl-o] back
crew nexum tui-agent-flow ⚙ engine · 21 agents ╭ agents (21) ────╭ help — [j/k] scroll · any other key closes ──────────────────╮─────────────────╮ │▶ ▷ claude │ Navigate │ │ │ ▷ claude │ j / k · ↑ / ↓ move selection │ │ │ ▷ claude │ g / G jump to top / bottom │ │ │ ▷ claude │ PgUp/Dn · ^u/^dpage / half-page the list │ │ │ ▷ claude │ ] / [ jump to next / prev failed agent │ │ │ ▷ claude │ space / A mark row / mark all · esc clears marks │ │ │ ▷ claude │ click / wheel select a row · scroll │ │ │ ▷ claude │ │ │ │ ▷ claude │ Launch & drive │ │ │ ▷ claude │ n new agent (workflow: chat / plan→build / plan│ │ │ ▷ claude │ enter chat with a live agent, or resume a ▷ one │wt [x]rm │ │ ▷ claude │ shift-tab (in chat) cycle the agent's modes, e.g. plan │ │ │ ▷ claude │ D duplicate into a prefilled new-agent form │ │ │ ▷ claude │ Ctrl-o leave the terminal, back to the dashboard │ │ │ ▷ claude │ │ │ │ ▷ claude │ Inspect │ │ │ ▷ claude │ d review the worktree diff (colored) │ │ │ ▷ claude │ l tail the log — live-follows at the bottom │ │ │ ▷ claude │ o / y worktree path · yank it to the clipboard │ │ │ ▷ claude │ Y yank the branch name │ │ │ ▷ claude │ e / ! open worktree in $EDITOR · drop to a $SHELL │ │ │ │ │ │ │ │ Ship │ │ │ │ P commit + push (selected or all marked), open │ │ │ │ O open the branch on the remote in a browser (g│ │ │ ╰──────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────╯╰────────────────────────────────────────────────────────────────╯ [q]uit [jk]move [n]ew [enter]chat [d]iff [l]og [e]dit [P]ush [s]top [x]rm [1-4]filter [,]settings [?
One binary. No backend required.
# build cd tui && cargo build --release # run from anywhere inside a git repo ./target/release/crew # …or launch headless from the shell (creates a worktree, runs the harness) ./target/release/crew --new "add billing endpoint" --harness cursor # in the dashboard: [n] launch · [enter] chat · [P] push+PR · [?] keymap
.crew/ — it needs only git and whichever agent CLI you launch. Drop in the optional nexum engine and it also surfaces observed sessions and headless delegation.