Transform your Git workflow with blazing-fast worktree management across multiple repositories โก
Stop juggling branches with git stash
and git checkout
. Stop losing your local changes. Stop waiting for dependency installs. Start working on multiple features simultaneously without the hassle.
# Old way ๐ซ
git stash
git checkout feature-B
npm install
# ... where did my changes go?
# Worktree way ๐
worktree feature-B
# Done! New isolated workspace ready in seconds!
One command to rule them all - create a worktree, copy env files, install dependencies, and open your IDE.
Manage worktrees across your entire stack - frontend, backend, microservices - all from one place.
Custom prefixes keep your worktrees organized (fe-feature
, be-bugfix
, api-hotfix
).
React-powered interactive UI with Ink - because terminals can be beautiful too.
See PR status instantly when gh
CLI is installed - no API keys needed!
Select multiple worktrees with spacebar and delete them all at once. Spring cleaning made easy.
# npm
npm install -g worktree-cli
# pnpm (recommended)
pnpm add -g worktree-cli
# yarn
yarn global add worktree-cli
cd your-awesome-project
worktree init
You'll be guided through a delightful setup:
๐ Repository name: frontend
๐ท๏ธ Worktree prefix: fe-
๐ Base path: ../worktrees
๐ Env file: .env.local
๐ฆ Install command: pnpm install
๐ป IDE command: cursor
worktree feature/dark-mode
Watch the magic happen:
โจ Creating worktree for branch: feature/dark-mode
๐ Location: ../worktrees/fe-feature-dark-mode
โ Worktree created
โ Copied .env.local
โ Dependencies installed
โ Opened in cursor
โ
Ready for some epic code!
worktree list
Interactive UI shows all your worktrees:
โโ Frontend (/Users/you/frontend) โโโโโโ
โ โ fe-feature-auth โ remote ๐ PR #23 โ
โ โ fe-dark-mode โ ๏ธ local only โ
โ โ fe-fix-header โ remote โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[Space] Select [Enter] Delete [Q] Quit
Creates a new worktree with all the bells and whistles:
worktree feature/awesome-stuff
# Creates: ../worktrees/fe-feature-awesome-stuff
# Runs: pnpm install
# Copies: .env.local
# Opens: cursor
Beautiful interactive list of all worktrees across all repositories:
- Space - Select worktrees
- Enter - Delete selected
- Q - Quit
Status indicators:
- โ remote - Pushed to remote
- ๐ PR #X - Has an open pull request
โ ๏ธ local only - Not yet pushed
Interactive configuration for the current repository:
worktree init
# Answer a few questions and you're golden!
Manage global defaults and repository settings:
worktree config
# โข View configuration
# โข Edit defaults
# โข Remove repositories
# Monday morning - Set up your repositories
cd ~/projects/frontend
worktree init
# prefix: fe-
cd ~/projects/backend
worktree init
# prefix: be-
cd ~/projects/mobile
worktree init
# prefix: mob-
# Start working on a feature across all repos
cd ~/projects/frontend
worktree feature/user-dashboard
cd ~/projects/backend
worktree feature/user-dashboard-api
cd ~/projects/mobile
worktree feature/user-dashboard-mobile
# See all your work
worktree list
# Shows all 3 worktrees across all repos! ๐
# Emergency hotfix needed!
worktree hotfix/critical-bug
# Fix the bug...
# Push to remote...
# Create PR...
# Clean up when done
worktree list
# Select the hotfix worktree
# Press Enter to delete
# โ
Workspace cleaned up!
Your config lives at ~/.worktreerc.json
:
{
"defaultBasePath": "../worktrees",
"defaultInstallCommand": "pnpm install",
"defaultIdeCommand": "cursor",
"repos": {
"/Users/you/frontend": {
"name": "frontend",
"prefix": "fe-",
"basePath": "../worktrees",
"envPath": ".env.local",
"installCommand": "pnpm install && pnpm prepare",
"ideCommand": "cursor"
},
"/Users/you/backend": {
"name": "backend",
"prefix": "be-",
"envPath": ".env",
"installCommand": "pnpm install && pnpm db:migrate"
}
}
}
Want to contribute? Awesome! Here's how to get started:
# Clone the repo
git clone https://github.com/yourusername/worktree-cli.git
cd worktree-cli
# Install dependencies
pnpm install
# Development mode with hot reload
pnpm dev
# Build for production
pnpm build
# Test locally
npm link
worktree --version
- TypeScript - Type safety FTW
- Ink - React for CLIs
- Commander - CLI argument parsing
- Zod - Runtime type validation
- Biome - Fast formatting & linting
We love contributions! Whether it's:
- ๐ Bug reports
- ๐ก Feature requests
- ๐ Documentation improvements
- ๐จ UI/UX enhancements
- ๐ง Code contributions
Check out our Contributing Guide to get started.
- Node.js >= 18.0.0
- Git (obviously!)
- gh CLI (optional, for PR status)
"Worktree CLI changed my life! I can finally work on multiple features without losing my mind!" - Happy Developer
"The prefix system is genius. My worktrees folder is finally organized!" - Organized Developer
"Being able to see PR status right in the terminal? Chef's kiss" - Efficient Developer
MIT ยฉ [Your Name]
Built with ๐ by developers, for developers