๐ณ Worktree CLI
Transform your Git workflow with blazing-fast worktree management across multiple repositories โก
๐ฏ Why Worktree CLI?
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!
โจ Features That Spark Joy
๐ Lightning-Fast Setup
One command to rule them all - create a worktree, copy env files, install dependencies, and open your IDE.
๐ข Multi-Repository Management
Manage worktrees across your entire stack - frontend, backend, microservices - all from one place.
๐ท๏ธ Smart Organization
Custom prefixes keep your worktrees organized (fe-feature, be-bugfix, api-hotfix).
๐จ Beautiful CLI Experience
React-powered interactive UI with Ink - because terminals can be beautiful too.
๐ GitHub Integration
See PR status instantly when gh CLI is installed - no API keys needed!
๐งน Bulk Operations
Select multiple worktrees with spacebar and delete them all at once. Spring cleaning made easy.
๐ฆ Installation
# npm npm install -g worktree-cli # pnpm (recommended) pnpm add -g worktree-cli # yarn yarn global add worktree-cli
๐ Quick Start
1๏ธโฃ Initialize Your First Repository
cd your-awesome-project
worktree initYou'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
2๏ธโฃ Create Your First Worktree
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!
3๏ธโฃ Manage Your Worktrees
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
๐ฎ Commands
worktree <branch> - Create Magic โจ
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
worktree list - See Everything ๐
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
worktree init - Setup Paradise ๐๏ธ
Interactive configuration for the current repository:
worktree init
# Answer a few questions and you're golden!worktree config - Fine-Tune Everything โ๏ธ
Manage global defaults and repository settings:
worktree config # โข View configuration # โข Edit defaults # โข Remove repositories
๐ฏ Real-World Workflow
The Full-Stack Developer's Dream
# 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! ๐
The Quick Fix Master
# 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!
โ๏ธ Configuration
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"
}
}
}๐ ๏ธ Development
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
Tech Stack
- TypeScript - Type safety FTW
- Ink - React for CLIs
- Commander - CLI argument parsing
- Zod - Runtime type validation
- Biome - Fast formatting & linting
๐ค Contributing
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.
๐ Requirements
- Node.js >= 18.0.0
- Git (obviously!)
- gh CLI (optional, for PR status)
๐ Success Stories
"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
๐ License
MIT ยฉ [Your Name]