Help us improve
Share bugs, ideas, or general feedback.
From optimus
Creates a git worktree for isolated parallel development — new branch in a separate directory with project setup and test baseline. Enables multiple Claude Code sessions on different tasks simultaneously.
npx claudepluginhub oprogramadorreal/optimus-claude --plugin optimusHow this skill is triggered — by the user, by Claude, or both
Slash command
/optimus:worktreeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a git worktree for isolated parallel development. Sets up a new branch in a separate directory (`.worktrees/`) with project setup and test baseline, so the main workspace stays untouched. Each worktree can host an independent Claude Code session.
Creates isolated Git worktree workspaces for working on multiple branches simultaneously without switching. Handles directory selection, safety verification, and project setup.
Creates isolated Git worktrees for parallel development, risky refactoring, or multi-feature work without branch switching or conflicts.
Creates isolated Git worktrees for parallel feature work, handling directory selection, safety verification, and project setup.
Share bugs, ideas, or general feedback.
Create a git worktree for isolated parallel development. Sets up a new branch in a separate directory (.worktrees/) with project setup and test baseline, so the main workspace stays untouched. Each worktree can host an independent Claude Code session.
Read $CLAUDE_PLUGIN_ROOT/skills/init/references/multi-repo-detection.md for workspace detection. If a multi-repo workspace is detected:
.git/, so git commands must target individual repos)AskUserQuestion — header "Target repo", question "Which repo should the worktree be created for?": list each repo as an optionRead $CLAUDE_PLUGIN_ROOT/skills/worktree/references/worktree-setup.md and run the worktree detection guard from that reference. If the guard detects you are already inside a linked worktree, inform the user:
Already running inside a worktree (`<worktree-path>`).
To create another worktree, run this skill from the main workspace instead.
Then stop — do not create recursive worktrees.
Record the current branch:
git rev-parse --abbrev-ref HEAD
Determine a meaningful description for the branch from the first source that provides enough signal (check in this priority order):
/optimus:worktree "fix login timeout"), use it directlyIf neither source provides enough signal, use AskUserQuestion — header "Worktree scope", question "What will you work on in the new worktree?":
Read $CLAUDE_PLUGIN_ROOT/skills/commit/references/branch-naming.md for the naming convention. Determine <type> and generate the slug from the description.
Handle collisions: if git show-ref --verify --quiet refs/heads/<branch-name> succeeds (branch exists), append -2 to the slug. If that also exists, try -3, and so on up to -9. If all collide, inform the user and stop.
Create the branch without switching to it:
git branch <branch-name>
Follow the setup procedure from $CLAUDE_PLUGIN_ROOT/skills/worktree/references/worktree-setup.md using <branch-name> and <original-branch> from Step 3. The procedure handles:
.worktrees/ and ensuring it is gitignoredgit worktree add .worktrees/<worktree-dir> <branch-name>If worktree creation fails, report the error with diagnostic information and stop.
## Worktree Created
Working directory: `.worktrees/<worktree-dir>`
Branch: `<branch-name>` (from `<original-branch>`)
Main workspace: `<original-branch>` (unchanged)
Tests: passing / no test command detected
### Open the worktree
**VSCode** (recommended — each worktree gets its own window, terminal, and file watchers):
- Source Control panel → right-click the worktree → "Open Worktree in New Window"
- Or from terminal: `code .worktrees/<worktree-dir>`
- Or Command Palette → "Git: Open Worktree in New Window"
**Claude Code CLI**: `cd .worktrees/<worktree-dir> && claude`
### Cleanup
When done: `git worktree remove .worktrees/<worktree-dir>`
Recommend running /optimus:tdd in the new worktree for test-driven development, or /optimus:init if the worktree needs project setup.
Tell the user: Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch.
<original-branch>.worktrees/ (gitignored) to keep the project root clean