Skip to content

joegrabski/sprout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sprout

Git worktree operations, without the context switching

A modern TUI for managing git worktrees with integrated tmux sessions and AI coding agents.

DocumentationInstallationQuick Start

What is Sprout?

Sprout simplifies git worktree management by providing:

  • Interactive TUI - Visual interface for creating, switching, and managing worktrees
  • Tmux Integration - Automatic session management with Neovim and Lazygit
  • AI Agent Support - Built-in integration with popular AI coding assistants (Codex, Aider, Claude, Gemini)
  • Shell Integration - Seamless directory switching via shell hooks
  • Zero Context Switching - Work on multiple branches simultaneously without losing your flow

Installation

Homebrew (macOS/Linux)

brew tap joegrabski/sprout
brew install sprout

Pre-built Binaries

Download from GitHub Releases

From Source

git clone https://github.com/joegrabski/sprout.git
cd sprout
make sprout-build
sudo make sprout-install

Quick Start

# Navigate to a git repository
cd ~/projects/myapp

# Create a new worktree
sprout new feat checkout-redesign

# Launch the interactive TUI
sprout

# List all worktrees
sprout list

# Switch to another worktree
sprout go main

See the Quick Start Guide for more details.

Key Features

Interactive TUI

Beautiful terminal interface showing all worktrees with their status, active tmux sessions, and running AI agents at a glance.

Automatic Tmux Sessions

Each worktree gets its own isolated tmux session with Neovim, Lazygit, and your preferred AI agent.

Smart Organization

Worktrees are organized in a dedicated directory structure, keeping your repository root clean.

AI Integration

Built-in support for:

  • Codex
  • Aider
  • Claude Code
  • Gemini

Each worktree can have its own AI coding assistant with independent context.

Documentation

Full documentation is available at sprout.dev

Development

This is a monorepo containing:

  • apps/sprout - Go CLI/TUI worktree manager
  • apps/web - Documentation website (Docusaurus)

Working on Sprout CLI

# Build sprout binary
make sprout-build

# Run tests
cd apps/sprout
go test ./...

# Install locally
make sprout-install

Working on Documentation

# Generate docs and start dev server
make docs-dev

# Build production docs
make docs-build

# Just generate auto-generated docs
make docs-generate

See apps/web/README.md for more documentation development details.

Available Make Commands

make help                 # Show all available commands
make docs-dev            # Start documentation dev server
make docs-build          # Build production documentation
make docs-generate       # Generate auto-generated docs
make sprout-build        # Build sprout binary
make sprout-install      # Build and install sprout

Configuration

Create ~/.config/sprout/config.toml:

base_branch = "main"
worktree_root_template = "../{repo}.worktrees"
auto_launch = true
auto_start_agent = true
session_tools = ["agent", "lazygit", "nvim"]
default_agent_type = "aider"

See Configuration Reference for all options.

Shell Integration

Add to your shell config:

# Zsh (~/.zshrc)
eval "$(sprout shell-hook zsh)"

# Bash (~/.bashrc)
eval "$(sprout shell-hook bash)"

# Fish (~/.config/fish/config.fish)
sprout shell-hook fish | source

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details

Support

About

Parallel AI agent and git worktree management TUI

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors