Multiply yourself across parallel agent sessions.
Git worktree manager for orchestrating Agentic Coding Assistants in parallel. Scale your skills across multiple AI coding sessions—spend your time deciding what to build, not the minutiae of how.
Read the wiki for background, concepts, and workflow guides.
- Simple commands - Create, list, open, and remove worktrees with short commands
- Auto-isolation - Worktrees stored in
.jig/(automatically git-ignored) - Configurable base branch - Set per-repo or global default base branch
- On-create hooks - Run setup commands automatically after worktree creation
- Shell integration - Tab completion for commands and worktree names
- Nested paths - Supports branch names like
feature/auth/login - Multi-agent workflow - Spawn parallel Claude Code sessions with tmux integration
- Event-driven orchestration - JSONL event logs track worker lifecycle, derive state, and trigger actions
- Daemon loop - Background orchestrator monitors workers, nudges idle/stuck sessions, and sends notifications
- GitHub integration - Detect CI failures, merge conflicts, and review comments via
ghCLI - Live dashboard -
jig ps --watchshows real-time worker status with event-derived state
curl -fsSL https://raw.githubusercontent.com/amiller68/jig/main/install.sh | bashThen add shell integration to your profile:
# For bash (~/.bashrc)
eval "$(jig shell-init bash)"
# For zsh (~/.zshrc)
eval "$(jig shell-init zsh)"| Command | Description |
|---|---|
jig create <name> [branch] |
Create a worktree with a new branch |
jig create <name> -o |
Create and cd into the worktree |
jig create <name> --no-hooks |
Create without running on-create hook |
jig open <name> |
cd into an existing worktree |
jig open --all |
Open all worktrees in new terminal tabs |
jig list |
List worktrees in .jig/ |
jig list --all |
List all git worktrees |
jig remove <pattern> |
Remove worktree(s) matching pattern (supports glob) |
jig exit [--force] |
Exit current worktree (removes it, returns to base) |
jig health |
Show terminal detection and dependency status |
jig config |
Show config for current repo |
jig config base <branch> |
Set base branch for current repo |
jig config base --global <branch> |
Set global default base branch |
jig config on-create <cmd> |
Set on-create hook for current repo |
jig config on-create --unset |
Remove on-create hook |
jig config --list |
List all configuration |
jig spawn <name> [options] |
Create worktree + launch Claude in tmux |
jig spawn --context <text> |
Provide task context for Claude |
jig spawn --auto |
Auto-start Claude with full prompt |
jig ps |
Show status of spawned sessions |
jig attach [name] |
Attach to tmux session (optionally to specific window) |
jig review <name> |
Show diff for parent review |
jig merge <name> |
Merge reviewed worktree into current branch |
jig kill <name> |
Kill a running tmux window |
jig kill --all |
Kill all workers |
jig nuke |
Nuke all workers, worktrees, and state (keeps config) |
jig init [--force] [--backup] |
Initialize jig.toml, docs/, issues/, and .claude/ |
jig update |
Show update instructions |
jig version |
Show version |
jig which |
Show path to jig executable |
jig daemon [--interval N] [--once] |
Run the orchestrator loop |
jig ps --watch [N] |
Live dashboard (refresh every N seconds) |
jig hooks [--install|--uninstall] |
Manage git/Claude hooks |
jig repos |
List tracked repositories |
jig health |
Show worker health and dependency status |
cd ~/projects/my-app
jig create feature-auth -o # Creates worktree, cd's into it
claude # Start Claude Code in isolationOpen a second terminal and do the same — both sessions work independently on their own branches.
- Working with Worktrees — Create, open, remove, glob patterns, terminal tabs
- Configuration and Hooks — Base branch, config file format, on-create hooks
- Setting Up a Repo with
jig init— Bootstrap docs, skills, and permissions - Multi-Agent Orchestration — Spawn parallel Claude workers with tmux
- Shell Integration — Tab completion, how
-oworks,jig which
Build from source:
cargo build --release
./target/release/jig --helpRun tests:
cargo testReinstall from the install script:
curl -fsSL https://raw.githubusercontent.com/amiller68/jig/main/install.sh | bashOr rebuild from source:
cargo install --git https://github.com/amiller68/jigrm ~/.local/bin/jig
rm -rf ~/.config/jig
# Remove eval line from ~/.bashrc and ~/.zshrc- Git
- Bash or Zsh
For jig spawn (optional):
tmux- Terminal multiplexerclaudeCLI
MIT