claude-code - 💡(How to fix) Fix macOS TCC prompt shows version number ("2.1.143") instead of "Claude Code" and re-prompts on every update

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…

Root Cause

Why this is bad UX

  • The dialog is opaque. Users see a version number with no indication it's Claude Code, and many will (reasonably) hit Don't Allow.
  • Because the binary's filename is the version (~/.local/share/claude/versions/2.1.143), every update creates a new path. macOS TCC keys consent on binary identity, so each version is treated as a brand-new app and the prompt fires again on every release.
  • The prompt now appears at the start of new sessions, including freshly launched shells. It breaks flow repeatedly.
RAW_BUFFERClick to expand / collapse

Environment

  • Claude Code: 2.1.143
  • macOS: 26.4.1 (build 25E253), Apple Silicon
  • Install path: ~/.local/share/claude/versions/2.1.143 (symlinked from ~/.local/bin/claude)

What happens

On launching claude in a new terminal session, macOS shows an App Management permission prompt titled:

"2.1.143" would like to access data from other apps.

(Screenshot to be attached.) The app name in the prompt is the Claude Code version string, not "Claude Code".

Why this is bad UX

  • The dialog is opaque. Users see a version number with no indication it's Claude Code, and many will (reasonably) hit Don't Allow.
  • Because the binary's filename is the version (~/.local/share/claude/versions/2.1.143), every update creates a new path. macOS TCC keys consent on binary identity, so each version is treated as a brand-new app and the prompt fires again on every release.
  • The prompt now appears at the start of new sessions, including freshly launched shells. It breaks flow repeatedly.

Root cause (best guess)

The installer ships a bare Mach-O executable rather than a .app bundle:

``` $ file ~/.local/share/claude/versions/2.1.143 ~/.local/share/claude/versions/2.1.143: Mach-O 64-bit executable arm64 ```

With no Info.plist, macOS has no CFBundleName/CFBundleDisplayName to show in the prompt (so it falls back to the binary filename, which is the version string) and no stable CFBundleIdentifier for TCC to persist consent against across versions. Versioning via the filename compounds this.

Suggested fixes (any one would help)

  1. Stable install path. Install the active version at a fixed path (e.g. ~/.local/share/claude/bin/claude) and track the version in a sibling file or symlink target. TCC then sees the same binary identity across updates.
  2. Ship a proper .app bundle with CFBundleName=Claude Code, a stable CFBundleIdentifier (e.g. com.anthropic.claude-code), and a designated requirement so TCC uses the signing identity rather than the path.
  3. Code-sign with a stable Team ID + designated requirement so TCC consent survives version bumps even on the current layout.

Repro

  1. Fresh install of Claude Code on macOS 26.x.
  2. Open a new Terminal/Ghostty session, run `claude`.
  3. App Management prompt appears with title `"2.1.143"` (or whatever version is installed).

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 macOS TCC prompt shows version number ("2.1.143") instead of "Claude Code" and re-prompts on every update