macOS TCC permission dialog shows version string "2.1.119" instead of "Claude Code"
Summary
When Claude Code triggers a macOS TCC permission prompt (e.g., for Google Drive file access), the dialog shows the version string 2.1.119 as the requesting app name instead of Claude Code. This makes it indistinguishable from a generic/unknown binary and pushes security-conscious users to deny the prompt by default.
Repro
- macOS Sonoma+ (Darwin 25.2.0 in my case) with Claude Code installed (version 2.1.119)
- Use Claude Code in a working directory backed by Google Drive (e.g., a directory under
~/My Drive/synced via the Google Drive Mac client) so a TCC prompt is triggered for Drive-managed files - Permission dialog appears
Expected
Dialog shows "Claude Code" wants to access files managed by "Google Drive".
Actual
Dialog shows "2.1.119" wants to access files managed by "Google Drive".
(Screenshot: the standard macOS Files-and-Folders TCC prompt with the Google Drive icon, where the requesting-app label reads literally 2.1.119 — the binary's version, not its name.)
Likely cause
Claude Code's app bundle (or the binary's Info.plist if it's not a bundle but a CLI binary running with TCC scope) is missing or misconfiguring CFBundleName / CFBundleDisplayName, so macOS falls back to displaying CFBundleVersion / CFBundleShortVersionString as the human-readable name in the TCC prompt.
claude --version confirms: 2.1.119 (Claude Code) — the parenthetical is the friendly name, but the bundle metadata that TCC actually reads doesn't seem to surface it.
Why it matters
- User trust: a permission prompt with an unrecognizable label like
2.1.119looks like an unsigned/suspicious binary. Users with security hygiene will deny it; users without will Allow blindly. Both outcomes are bad — first breaks Claude Code, second normalizes ignoring TCC prompts. - Repeat exposure: TCC re-prompts for sensitive scopes periodically (especially Files-and-Folders / Drive). Each re-prompt is another chance for the user to deny.
- No diagnostic path: without
claude --versionknowledge, the user has no way to identify what2.1.119is. I had to verify the version manually before recommending Allow.
Suggested fix
Set CFBundleName and CFBundleDisplayName to Claude Code in the binary's bundle metadata (or in the embedded Info.plist of the Mach-O if it's a single-binary CLI). Verify with:
mdls -name kMDItemDisplayName "$(which claude)"
mdls -name kMDItemFSName "$(which claude)"
after fix, the TCC prompt should read "Claude Code" wants to access....
Environment
- Claude Code: 2.1.119
- macOS: Darwin 25.2.0
- Install method: standard (whatever the docs current default is)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗