claude-code - 💡(How to fix) Fix TCC reprompts on every release — versioned binary path invalidates macOS Privacy grants [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#58713Fetched 2026-05-14 03:41:24
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Author
Timeline (top)
labeled ×4commented ×1cross-referenced ×1

On macOS, Claude Code installs to ~/.local/share/claude/versions/<version>/. macOS TCC keys file-access grants to the absolute binary path. Every release moves the binary to a new versioned dir, invalidating prior grants. Result: Documents/Downloads/Desktop "Allow" prompts fire on the first directory crossing after each update.

Root Cause

Repro

  1. Grant Claude Code access to ~/Documents (click Allow on TCC prompt).
  2. Wait for auto-update (typically 1–3 days).
  3. Run any command that crosses into ~/Documents.
  4. TCC prompt fires again — label reads "<version>" (e.g. "2.1.140") because macOS uses the responsible-binary parent-dir name.

Fix Action

Workaround

Grant Full Disk Access to the parent terminal (Terminal.app or iTerm) — Claude Code inherits its TCC permissions.

Code Example

sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
  "SELECT COUNT(*), client FROM access WHERE client LIKE '%/.local/share/claude/versions/%' GROUP BY client;"
RAW_BUFFERClick to expand / collapse

Summary

On macOS, Claude Code installs to ~/.local/share/claude/versions/<version>/. macOS TCC keys file-access grants to the absolute binary path. Every release moves the binary to a new versioned dir, invalidating prior grants. Result: Documents/Downloads/Desktop "Allow" prompts fire on the first directory crossing after each update.

Repro

  1. Grant Claude Code access to ~/Documents (click Allow on TCC prompt).
  2. Wait for auto-update (typically 1–3 days).
  3. Run any command that crosses into ~/Documents.
  4. TCC prompt fires again — label reads "<version>" (e.g. "2.1.140") because macOS uses the responsible-binary parent-dir name.

Evidence

TCC.db accumulated 24 stale grant rows across 10 Claude Code versions (2.1.119 → 2.1.140) over ~7 days on my machine.

sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
  "SELECT COUNT(*), client FROM access WHERE client LIKE '%/.local/share/claude/versions/%' GROUP BY client;"

Returned 11 distinct versioned paths, all valid grants but only the current version's are reachable.

Suggested fix

  • Stable wrapper binary at a fixed path (e.g. ~/.local/bin/claude) that execs the versioned binary. TCC grants the wrapper, which never moves. Currently ~/.local/bin/claude is a symlink — but TCC resolves symlinks at grant time and stores the target path, so it doesn't help.
  • Alternative: ship as a macOS .app bundle at /Applications/Claude Code.app — TCC then keys grants to bundle ID, which is stable across versions.

Workaround

Grant Full Disk Access to the parent terminal (Terminal.app or iTerm) — Claude Code inherits its TCC permissions.

Env

  • macOS Darwin 25.4.0
  • Claude Code 2.1.140 (also seen on .119, .121, .123, .126, .128, .129, .131, .133, .137, .138, .139)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix TCC reprompts on every release — versioned binary path invalidates macOS Privacy grants [1 comments, 2 participants]