Recurring macOS permission dialog for CLI binary ("2.1.80" would like to access data from other apps)
Description
On macOS 26 (Tahoe), Claude Code's CLI binary triggers a recurring macOS TCC permission dialog:
"2.1.80" would like to access data from other apps.
The dialog displays a generic folder icon and the version number as the app name (e.g., "2.1.80"), which looks suspicious to users. Clicking "Allow" does not persist — the dialog reappears and also triggers Apple Mail to open each time.
Root Cause
The Claude Code binary lives at ~/.local/share/claude/versions/2.1.80 — a bare Mach-O executable, not a .app bundle. macOS does not reliably persist TCC permissions for standalone binaries without an Info.plist or app bundle wrapper. The binary is properly signed (Developer ID Application: Anthropic PBC), but macOS displays the filename ("2.1.80") instead of the app name since there is no Info.plist bound to it.
Steps to Reproduce
- Install Claude Code (version 2.1.80) on macOS 26
- Run Claude Code with MCP integrations (Gmail, Calendar, Notion, etc.)
- Observe the recurring permission dialog
- Click "Allow" — dialog reappears on next invocation
Expected Behavior
- Permission should persist after clicking "Allow"
- The dialog should display "Claude Code" as the app name, not the version number
- The dialog should not trigger Apple Mail to open
Environment
- macOS 26.1 (Build 25B78)
- Claude Code 2.1.80
- Binary:
~/.local/share/claude/versions/2.1.80 - Code signing:
Developer ID Application: Anthropic PBC (Q6L2SF6YDW) Info.plist=not bound
Suggested Fix
Consider wrapping the CLI binary in a minimal .app bundle with an Info.plist so macOS can properly identify it and persist TCC permissions. Alternatively, bind an Info.plist to the Mach-O binary at build time.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗