Everything your workflow needs
Sprout handles the overhead so you stay in flow.
See everything at once
A TUI showing all your worktrees with live status, active sessions, and git diffs, without leaving the terminal.
Tailored multi-pane sessions
Per-project multi-pane layouts, auto-running dev servers, and a consistent toolset, scaffolded from one TOML rule.
An AI agent per branch
Run Codex, Aider, Claude Code, or Gemini inside each worktree. Each agent keeps its own independent context.
Work in parallel, ship faster
Tackle a hotfix, a feature, and a review at the same time. No stashing. No branch juggling. Every worktree stays ready.
Always a clean repo root
Worktrees live in a sibling directory. Your main checkout stays clean and easy to navigate.
Feels native to your shell
Shell hooks for zsh, bash, and fish let you navigate worktrees exactly like any other directory. Preview panes load your full shell profile, so your tools are always on PATH.
Preview any branch, live
Promote any worktree to a live preview: your whole stack (APIs, web apps, mobile bundler) runs from that branch in a dedicated session. Switch which branch is live with one command.
Configs that follow your tunnels
Expose a service through a tunnel and Sprout rewrites the URLs into your app config on every switch. No stale tunnel URLs, no hand-editing, no rebuilds.
A few commands.
Simple, memorable commands that stay out of your way.
Preview any branch. Configs follow.
Promote any worktree to a live preview and Sprout runs your whole stack from it. Expose a service through a tunnel and the live URLs are written into your app config on every switch, with no editing and no rebuilds.
[[preview_sync]]
file = "{worktree}/web/config.json"
reload_windows = ["web"]
[[preview_sync.set]]
path = "api.baseUrl"
tunnel = "api"- Run your real stack against any agent's branch
- Tunnel URLs synced into your config automatically
- Switch previews with one command, no rebuilds
A TUI built for parallel work.
Run sprout ui for a three-pane interface: every branch, its tmux session, and the current git diff, all visible at once.
- Jump between worktrees with a single keypress
- Scan dirty branches and active tmux sessions at a glance
- Review diffs in place, then attach to tmux for the full session
Configure your ideal environment.
Define every window and pane exactly how you work. Sprout scaffolds your entire workspace from simple TOML rules, from code editors to auto-running development servers.
# Match the layout shown on the left
[[windows]]
name = "main"
layout = "main-horizontal"
panes = [
{ run = "nvim ." },
{ run = "go run main.go" }
]
[[windows]]
name = "agent"
panes = [{ run = "codex" }]
[[windows]]
name = "git"
panes = [{ run = "lazygit" }]- Define project-specific split layouts
- Auto-run your dev server or logs on launch
- Perfectly consistent environments every time
Stop stashing. Start sprouting.
brew tap joegrabski/sprout && brew install sprout