Recurring macOS permission dialog for CLI binary ("2.1.80" would like to access data from other apps)

Resolved 💬 3 comments Opened Mar 20, 2026 by christopherjhale Closed Mar 24, 2026

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

  1. Install Claude Code (version 2.1.80) on macOS 26
  2. Run Claude Code with MCP integrations (Gmail, Calendar, Notion, etc.)
  3. Observe the recurring permission dialog
  4. 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.

View original on GitHub ↗

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