worktree

A command for creating a separate Git worktree and branch for a task. A Git worktree is another working directory connected to the same repository, so separate tasks can use separate files and branches.

In plain words
What is it for?
Use it to create a task branch from main or another base branch, after checking that the repository is clean. It is useful for parallel development or risky changes that should not affect the current checkout.
Why use it?
It keeps task changes isolated from the main working directory. This makes it easier to work safely on an experiment or feature and remove the task branch if needed.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/thedecipherist/claude-code-mastery-project-starter-kit/worktree
Clone the repo
git clone --depth 1 https://github.com/TheDecipherist/claude-code-mastery-project-starter-kit

Made for: Claude Code.

Per session 11 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 973 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00011 $0.00973
Opus 5 $0.00005 $0.00487
Sonnet 5 $0.00002 $0.00195
Haiku 4.5 $0.00001 $0.00097

Measured 3d ago against content hash 51c969a536db, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

worktree scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/worktree.md · 125 lines

How it starts

The opening of the file, as written. The whole thing — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Git Worktree — Isolated Task Branch

Create a new git worktree so this task runs on its own branch in its own directory. Main stays untouched. If anything goes wrong, delete the branch — zero risk.

Arguments: $ARGUMENTS

Step 0 — Parse Arguments

  • First argument: branch name (required). If not provided, ASK the user.
  • Second argument: base branch to branch from (optional, defaults to main or master)

Branch naming convention: task/<descriptive-name>

  • If the user provides just a name like auth-fix, prefix it: task/auth-fix
  • If they already include a prefix like feat/login, use as-is

Step 1 — Verify Git State

Before creating anything, verify:

# Must be in a git repo
git rev-parse --git-dir

# Check for uncommitted changes on current branch
git status --porcelain

If there are uncommitted changes: WARN the user. Ask if they want to:

  • Stash changes first (git stash)
  • Commit changes first
  • Abort

NEVER create a worktree with dirty state — changes could bleed between worktrees.

Step 2 — Determine Base Branch

# Find the default branch (main or master)
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'

If no remote, fall back to checking if main or master exists locally.

Use the second argument if provided, otherwise use the detected default branch.

Step 3 — Create Branch + Worktree

The worktree directory goes next to the current repo as ../<repo-name>--<branch-name>:

# Example: if repo is at ~/projects/my-app and branch is task/auth-fix
# Worktree goes to ~/projects/my-app--task-auth-fix

REPO_NAME=$(basename "$(git rev-parse --show-toplevel)")
BRANCH_NAME="$1"
WORKTREE_DIR="../${REPO_NAME}--${BRANCH_NAME//\//-}"

# Create the branch and worktree in one step
git worktree add -b "$BRANCH_NAME" "$WORKTREE_DIR" "$BASE_BRANCH"

Step 4 — Verify

# List all worktrees to confirm
git worktree list

Step 5 — Report

Output a summary:

Read the full file on GitHub · 125 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 125 lines · 11 tokens per session scan A 51c969a536db

Subscribe to this mod's changes

worktree is a command published in the GitHub repository TheDecipherist/claude-code-mastery-project-starter-kit (337 stars, last pushed 2mo ago), licensed MIT. It adds 11 tokens to every session and 973 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.