Getting started
Install banyan, create your first project, spin up your first parallel feature.
Prerequisites
Banyan runs on macOS and Linux. Windows isn't supported — use WSL2.
| Tool | Why |
|---|---|
| Node.js ≥ 20 | runtime + native test runner |
| git ≥ 2.5 | git worktree, git rebase |
| tmux ≥ 3.0 | the workspace concept |
| bash | helper scripts |
| Claude Code CLI | per-feature agents |
Optional: Docker (compose stacks), gh / glab (merge against remotes), fzf (feature picker UI).
OpenRouter API key (free tier works) — required when you want
bn wt -p "<prompt>" to auto-name the branch from the prompt. Not
needed if you always pass an explicit feature name. Set via the
OPENROUTER_API_KEY env var or in ~/.config/banyan/config.yaml
under llm.openrouterApiKey.
Install
Doctor walks every requirement and prints exactly what's missing plus the command to fix each thing. Run it any time the setup feels off.
The npm package is named
banyan-clibecause the unscopedbanyanname was already taken on the registry. The installed binary isbn(withbanyanas an alias) — same name, same behaviour.
On first bn init, banyan renders ~/.config/banyan/banyan.tmux.conf and offers to wire it into your ~/.tmux.conf. Say yes once and the Alt-shortcuts are live forever.
Install from source (for contributors)
Your first project
Two paths — pick one.
Via the dashboard wizard
The wizard walks you through naming the project, adding repos (with tech auto-detection), and saving the config.
Via the CLI + dashboard
bn init is the only CLI config command — every other mutation
(add/remove repo, set base branch, edit run command) goes through
the dashboard Config tab or direct YAML editing.
Open the workspace
You're now in a tmux session with two panes: the project orchestrator (Claude with --add-dir on every repo) and a free terminal for ad-hoc commands.
Spin up a feature
This:
- Creates a worktree in every repo on branch
feature/my-feature - Seeds gitignored files (
.env.local, etc.) into each worktree - Spawns a Claude agent with
--add-diron all worktrees - Starts compose stacks for the feature (on dynamically-allocated ports)
Run it
Each repo's run command spawns in its own tmux pane, with its allocated port + env vars injected.
Merge and clean
Done. Read Concepts next for the mental model, or jump to Commands for the full reference.