Allow configuring default base branch for --worktree

Resolved 💬 3 comments Opened Mar 18, 2026 by mechastriker3 Closed Mar 22, 2026

When using claude --worktree, the new worktree branches from the current HEAD. If I'm checked out to a feature branch or inside another worktree, the new worktree is based on that branch instead of the remote default (e.g., origin/main).

Problem

In my workflow, I often invoke claude -w while already on a feature branch. This means the worktree starts from that branch's state rather than the latest origin/main, which is almost never what I want. I have to remember to switch to main first, or manually create the worktree with git commands.

Proposed solution

Add a worktree.baseBranch setting in settings.json:

{
  "worktree": {
    "baseBranch": "origin/main"
  }
}

When set, claude --worktree would always create the new worktree from the specified ref, regardless of the current checkout. When unset, behavior stays as-is (branch from current HEAD).

Workaround

Manually creating the worktree and launching Claude inside it:

git worktree add .claude/worktrees/my-task -b my-task origin/main
cd .claude/worktrees/my-task && claude

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗