worktree-manage
SKILL.md
Worktree Management
Manage git worktrees for the current repository using the lazyworktree CLI.
Current Worktrees
!lazyworktree list --json
Current Working Directory
!pwd
Current Branch
!git branch --show-current
Available Operations
Create a Worktree
From the current branch (new feature work):
# Auto-generated name (branch-adjective-noun pattern)
lazyworktree create --silent
# With a specific name
lazyworktree create --silent my-feature-name
# Carry over uncommitted changes to the new worktree
lazyworktree create --silent --with-change my-feature-name
# From a specific branch
lazyworktree create --silent --from-branch main my-feature-name
From a GitHub/GitLab PR:
lazyworktree create --silent --from-pr 42
From a GitHub/GitLab issue:
lazyworktree create --silent --from-issue 123
# Optionally specify a base branch
lazyworktree create --silent --from-issue 123 --from-branch main
Run a command after creation:
lazyworktree create --silent --from-branch main my-feature --exec "npm install"
All create commands print the created worktree path to stdout on success.
List Worktrees
# JSON output (for parsing)
lazyworktree list --json
# Paths only (one per line)
lazyworktree list --pristine
# Human-readable table
lazyworktree list
JSON fields: path, name, branch, is_main, dirty, ahead, behind, unpushed, last_active.
Run Commands in a Worktree
Use exec to run commands in a specific worktree without changing directory:
# By worktree name
lazyworktree exec -w my-feature-name "make build"
# Run any shell command
lazyworktree exec -w my-feature-name "git status"
lazyworktree exec -w my-feature-name "go test ./..."
Delete a Worktree
# Delete worktree and its branch (if names match)
lazyworktree delete --silent my-feature-name
# Delete worktree but keep the branch
lazyworktree delete --silent --no-branch my-feature-name
Workflow Instructions
When the user asks to create a worktree:
- Determine the source: current branch, a specific branch, a PR number, or an issue number
- Run the appropriate
lazyworktree create --silentcommand - Capture the output path
- Report the created worktree path to the user
- If the user wants to work in it immediately, use
lazyworktree exec -w <name>for subsequent commands
When the user asks to switch to a worktree:
- Run
lazyworktree list --jsonto find available worktrees - Identify the target by name, branch, or path
- For running commands in the target worktree, use:
lazyworktree exec -w <name> "<command>" - Tell the user they can switch their shell with:
cd <path>
When the user asks to list worktrees:
- Run
lazyworktree list --jsonand present the results - Highlight dirty worktrees, ahead/behind status, and last active times
When the user asks to delete a worktree:
- Run
lazyworktree list --jsonto show current worktrees - Confirm which worktree to delete
- Run
lazyworktree delete --silent <name>
Important Notes
- The
--silentflag suppresses progress messages to stderr; stdout still contains the result path - Worktree names are automatically sanitised (special characters replaced with hyphens)
- The main worktree cannot be deleted
- Use
exec -wto run commands in a worktree without changing your shell's working directory - If the user says "switch to" or "work in" a worktree, prefer using
exec -wfor running commands there and inform the user of the path for manualcd
Weekly Installs
1
Repository
chmouel/lazyworktreeGitHub Stars
180
First Seen
6 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1