macOS TCC permission dialog shows version string "2.1.119" instead of "Claude Code"

Resolved 💬 2 comments Opened Apr 27, 2026 by amuslera Closed Jun 14, 2026

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

  1. macOS Sonoma+ (Darwin 25.2.0 in my case) with Claude Code installed (version 2.1.119)
  2. 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
  3. 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.119 looks 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 --version knowledge, the user has no way to identify what 2.1.119 is. 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)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗