macOS TCC prompt shows version number ("2.1.143") instead of "Claude Code" and re-prompts on every update
Environment
- Claude Code:
2.1.143 - macOS:
26.4.1(build25E253), 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)
- 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. - Ship a proper
.appbundle withCFBundleName=Claude Code, a stableCFBundleIdentifier(e.g.com.anthropic.claude-code), and a designated requirement so TCC uses the signing identity rather than the path. - Code-sign with a stable Team ID + designated requirement so TCC consent survives version bumps even on the current layout.
Repro
- Fresh install of Claude Code on macOS 26.x.
- Open a new Terminal/Ghostty session, run \
claude\. - App Management prompt appears with title \
"2.1.143"\(or whatever version is installed).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗