Worktree Guide
Interactive guide for parallel development with Ghostty, git worktrees, and Lazygit. Use when setting up multi-task workflows or learning the worktree system.
$ npx claude-code-templates@latest --skill="development/worktree-guide" --yesRequires Claude Code. The command adds this skill to your project's .claudedirectory — nothing runs on ToolZip's servers.
What's inside this skill
Component source (preview)
Guide the user through parallel development workflows using Ghostty terminal panels, git worktrees, and Lazygit. This is both a teaching experience and a practical reference.
Preflight
Before starting, detect the user's environment:
git rev-parse --is-inside-work-tree 2>&1 && echo "GIT_OK" || echo "NOT_GIT"
If not a git repo:
This isn't a git repository. Navigate to a git project first, then come back to /worktree-guide.
Check if we're in a worktree or main repo:
git worktree list
pwd
Note the context for later guidance.
Phase 1: Welcome & Context Detection
Display based on environment:
If in main repo:## Worktree Parallel Development Guide
Welcome! I'll guide you through setting up and using parallel worktrees for multi-task development.
┌─────────────────────────────────────────────────────────────┐
│ Ghostty Terminal │
│ ┌──────────────────────┬──────────────────────┐ │
│ │ │ │ │
│ │ Claude (Task 1) │ Claude (Task 2) │ │
│ │ claude/login-page │ claude/fix-auth-bug │ │
│ │ │ │ │
│ ├──────────────────────┴──────────────────────┤ │
│ │ Lazygit (monitoring) │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
**Your workflow:**
1. Create worktrees → `/worktree-init`
2. Open Ghostty panels → `Cmd+D` / `Cmd+Shift+D`
3. Run Claude in each panel → `cd <worktree> && claude`
4. Deliver when done → `/worktree-deliver`
5. Clean up → `/worktree-cleanup`
What would you like to do?
Use AskUserQuestion:
- "Learn the full workflow" — Start from Phase 2
- "Just show keybindings" — Jump to Quick Reference
- "Create worktrees now" — Suggest
/worktree-init - "Something else" — Ask what they need
## Worktree Status
You're already inside a worktree! Let me check your status.
Then run the equivalent of /worktree-check and provide contextual guidance.
Phase 2: Ghostty Essentials
EXPLAIN:## Ghostty Panel Management
Ghostty's panel system is perfect for parallel development. Here are the essential keybindings:
SHOW:
┌─────────────────────────────────────────────────────────────┐
│ GHOSTTY KEYBINDINGS │
├─────────────────────────────────────────────────────────────┤
│ │
│ SPLITTING │
│ ───────── │
│ Cmd+D Split panel to the right │
│ Cmd+Shift+D Split panel below │
│ │
│ NAVIGATION │
│ ───────── │
│ Cmd+Alt+←/→/↑/↓ Move focus between panels │
│ Cmd+[/] Cycle through panels │
│ │
│ SIZING │
│ ───────── │
│ Cmd+Shift+E Equalize all panel sizes │
│ Cmd+Shift+F Toggle zoom (fullscreen current panel) │
│ │
│ CLOSING │
│ ───────── │
│ Cmd+W Close current panel │
│ │
└─────────────────────────────────────────────────────────────┘
**Pro tip:** Use Cmd+Shift+F to zoom into a panel when you need focus, then press it again to return to the multi-panel view.
PAUSE - "Ready to learn about Lazygit? (Or skip to workflow)"
Phase 3: Lazygit Essentials
EXPLAIN:## Lazygit for Monitoring Worktrees
Lazygit gives you a visual overview of all your worktrees and their changes. Run it from your main repo to monitor everything.
SHOW:
┌─────────────────────────────────────────────────────────────┐
│ LAZYGIT KEYBINDINGS │
├─────────────────────────────────────────────────────────────┤
│ │
│ WORKTREES (navigate to Worktrees panel) │
│ ───────── │
│ w Switch to worktree panel (or create new) │
│ Enter Switch to selected worktree │
│ n Create new worktree │
│ d Delete worktree (with confirmation) │
│ │
│ FILES & STAGING │
│ ───────── │
│ Space Stage/unstage file │
│ a Stage all files │
│ Enter View file diff (with Delta highlighting) │
│ │
│ COMMITS │
│ ───────── │
│ c Commit staged changes │
│ C Commit with editor │
│ A Amend last commit │
│ │
│ SYNC │
│ ───────── │
│ P Push │
│ p Pull │
│ f Fetch │
│ │
│ GENERAL │
│ ───────── │
│ ? Help (context-sensitive) │
│ q Quit / go back │
│ Tab Switch panels │
│ │
└─────────────────────────────────────────────────────────────┘
**Monitoring workflow:**
1. Open lazygit in the main repo (or a dedicated Ghostty panel)
2. Press `w` to see all worktrees
3. Use Enter to dive into any worktree's changes
4. Press `q` to go back to the worktree list
PAUSE - "Ready for the full workflow walkthrough?"
Phase 4: Complete Workflow (Guided)
EXPLAIN:## Full Parallel Development Workflow
Let me walk you through the complete cycle. We'll go step by step.
Step 4.1: Create Worktrees
EXPLAIN:### Step 1: Create Worktrees
First, define the tasks you want to work on in parallel. The `/worktree-init` command creates a worktree for each task.
DO: Show example command:
Example usage:
/worktree-init add user authentication | fix login bug | improve dashboard performance
This creates:
├── ../worktrees/<repo>/claude-add-user-authentication/
├── ../worktrees/<repo>/claude-fix-login-bug/
└── ../worktrees/<repo>/claude-improve-dashboard-performance/
Step 4.2: Open Ghostty Panels
EXPLAIN:### Step 2: Open Ghostty Panels
Now split your terminal into panels—one for each task, plus optionally one for Lazygit monitoring.
DO:
1. Press Cmd+D to split right (first worktree)
2. Press Cmd+D again (second worktree)
3. Optionally press Cmd+Shift+D on any panel for Lazygit below
Resulting layout:
┌──────────┬──────────┬──────────┐
│ Task 1 │ Task 2 │ Task 3 │
│ claude │ claude │ claude │
├──────────┴──────────┴──────────┤
│ lazygit │
└────────────────────────────────┘
Step 4.3: Work in Each Panel
EXPLAIN:### Step 3: Work Independently
In each panel:
1. cd to the worktree path (from the commands output)
2. Run `claude` to start a Claude session
3. Use `/worktree-check` anytime to verify which task you're working on
4. Work normally—Claude doesn't know about other panels
Step 4.4: Deliver Completed Work
EXPLAIN:### Step 4: Deliver When Done
When you finish a task in any panel, use `/worktree-deliver` to:
1. Review your changes
2. Create a commit
3. Push to remote
4. Create a pull request
Step 4.5: Clean Up
EXPLAIN:### Step 5: Clean Up After Merging
After your PRs are merged on GitHub:
1. Go back to the main repo (not a worktree)
2. Run `/worktree-cleanup --all`
3. It removes merged worktrees and branches
Phase 5: Troubleshooting
SHOW:## Troubleshooting
### "I'm not sure which worktree I'm in"
Run `/worktree-check` — it shows your branch, task, and status.
Alternatively:
$ git branch --show-current # Shows claude/<name>
$ pwd # Shows the worktree path
---
### "I have uncommitted changes and want to switch tasks"
**Option 1:** Commit work-in-progress
$ git add . && git commit -m "wip: progress on feature"
**Option 2:** Stash changes (temporary)
$ git stash push -m "wip: parking changes"
Then in the other panel, continue working. Come back later with:
$ git stash pop
---
### "I accidentally started working in the wrong worktree"
1. Stash your changes: `git stash push -m "work done in wrong place"`
2. Navigate to the correct worktree
3. Apply the stash: `git stash pop`
---
### "My worktree has merge conflicts"
1. Run `git fetch origin` to get latest
2. Run `git rebase origin/main` (or merge if you prefer)
3. Resolve conflicts in your editor
4. `git add .` then `git rebase --continue`
---
### "I want to abandon a worktree"
From the main repo:
$ git worktree remove ../worktrees/repo/claude-<name> --force
$ git branch -D claude/<name>
Note: Force is needed if there are uncommitted changes.
---
### "/worktree-deliver failed on push"
Usually means the remote branch doesn't exist yet or there's a conflict.
Try:
$ git push -u origin HEAD
If there's a conflict with remote, pull first:
$ git pull --rebase origin claude/<name>
---
### "The worktree path doesn't exist anymore"
The worktree was probably deleted manually. Clean up the git state:
$ git worktree prune
Phase 6: Quick Reference Card
SHOW:```
┌─────────────────────────────────────────────────────────────────────────────┐
│ WORKTREE QUICK REFERENCE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ COMMANDS │
│ ───────── │
│ /worktree-init
│ /worktree-check Show current worktree status & task │
│ /worktree-deliver Commit, push, and create PR │
│ /worktree-cleanup --all Remove merged worktrees and branches │
│ /worktree-cleanup --dry-run Preview what would be cleaned up │
│ │
│ GHOSTTY │
│ ───────── │
│ Cmd+D Split right │ Cmd+Shift+E Equalize panels │
│ Cmd+Shift+D Split down │ Cmd+Shif
Preview truncated. View the full source on GitHub →
Related Claude Code Skills
Code Reviewer
Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go. Includes automated code analysis, best practice checking, security scanning, and review checklist generation. Use when reviewing pull requests, providing code feedback, identifying issues, or ensuring code quality standards.
Senior Frontend
Comprehensive frontend development skill for building modern, performant web applications using ReactJS, NextJS, TypeScript, Tailwind CSS. Includes component scaffolding, performance optimization, bundle analysis, and UI best practices. Use when developing frontend features, optimizing performance, implementing UI/UX designs, managing state, or reviewing frontend code.
Senior Backend
Comprehensive backend development skill for building scalable backend systems using NodeJS, Express, Go, Python, Postgres, GraphQL, REST APIs. Includes API scaffolding, database optimization, security implementation, and performance tuning. Use when designing APIs, optimizing database queries, implementing business logic, handling authentication/authorization, or reviewing backend code.
Senior Architect
Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin, Flutter, Postgres, GraphQL, Go, Python. Includes architecture diagram generation, system design patterns, tech stack decision frameworks, and dependency analysis. Use when designing system architecture, making technical decisions, creating architecture diagrams, evaluating trade-offs, or defining integration patterns.
Skill Creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Senior Fullstack
Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architecture patterns, and complete tech stack guidance. Use when building new projects, analyzing code quality, implementing design patterns, or setting up development workflows.
Catalog data and component content are sourced from the open-source davila7/claude-code-templates project (MIT license). ToolZip curates the listing and writes original descriptions; every component links back to its original source. Claude Code is a product of Anthropic. ToolZip is an independent catalog and is not affiliated with or endorsed by Anthropic.