Bug: agent view @ directory picker does not recognize registered git worktrees (.claude/worktrees) when dispatching a session

Open 💬 0 comments Opened Jul 4, 2026 by misganawFolio

Environment

  • Claude Code v2.1.201 (CLI, claude agents TUI)
  • macOS (darwin 25.5.0), zsh
  • Monorepo with git worktrees under <repo>/.claude/worktrees/ — all created by Claude Code itself (background session isolation / --worktree)

Bug

The @ directory picker in the agent view's "describe a task for a new session" input does not recognize registered git worktrees. It appears to show only a small MRU-style list of previously used directories, so most worktrees cannot be targeted when dispatching a new session.

Repro / evidence

git worktree list in the repo shows 10 registered, healthy worktrees under .claude/worktrees/ (no locked/prunable flags in --porcelain output). Typing @ in the dispatch input lists only 2 of them, plus 3 unrelated repos.

Concrete example of the recognition being inconsistent:

  • .claude/worktrees/fol-2127-ticket-summary — registered worktree, healthy (git rev-parse works inside it), had agent sessions as recently as 5 days ago. Never appears in the picker, under any filter query (@2127, @ticket, @summ — the last two match its name directly).
  • An unrelated repo last used ~3 weeks ago does appear.

Also verified while investigating:

  • The picker list is identical across fresh claude agents launches (not a rendering/scroll issue — filter queries that should match the missing worktree return nothing).
  • --add-dir <worktree> does not add the directory to the picker (it only grants file access to dispatched sessions).
  • Starting a fresh headless session inside the missing worktree (cd <worktree> && claude -p ...) does not seed it into the picker.
  • Deleted directories are correctly dropped from the list, so some validation runs — but registered worktrees are not enumerated.

Expected

When dispatching a session, the @ picker should enumerate git worktree list for known repos — at minimum the worktrees under .claude/worktrees/, which Claude Code created itself — or accept a free-form path. Related earlier asks #61546 and #60975 were closed; the @ picker seems to be the intended answer to those, but its directory discovery is incomplete, which makes dispatch-to-worktree effectively unavailable.

Impact

To run a task in a specific worktree you must leave the agent view, cd into the worktree, and run claude --bg "..." — for every worktree. This defeats the purpose of the one-screen dispatch flow for the parallel-worktree workflow that Claude Code itself encourages.

View original on GitHub ↗