[BUG] macOS keeps prompting '"2.1.x" would like to control this Mac' after every update (native install binary path changes per version)

Status Open
Reported on v2.1.284
Maintainer reply None cached
Activity 0 comments · opened Oct 10, 2026

What's Wrong?

On macOS with the native installer, I keep getting this system dialog:

Device Control and Data Access "2.1.284" would like to control this Mac and access your data. Grant access to this application in Privacy & Security settings, located in System Settings.

The app name shown is just the version number because the native install runs the binary directly from ~/.local/share/claude/versions/<version>, with ~/.local/bin/claude as a symlink to it:

~/.local/bin/claude -> ~/.local/share/claude/versions/2.1.284
~/.local/share/claude/versions/2.1.266
~/.local/share/claude/versions/2.1.280
~/.local/share/claude/versions/2.1.284

macOS TCC keys permissions to the executable's path and code signature. Every auto-update writes a new file at a new path, so macOS treats each version as a new app. Any permission granted to the previous version is lost and the prompt comes back. Old entries such as 2.1.266 and 2.1.280 pile up as dead rows in Privacy & Security. Each running claude process can also trigger its own prompt.

What Should Happen?

  • The prompt should name the app recognizably (e.g. "Claude Code"), not a bare version number.
  • Granted permissions should survive updates, for example by running from a stable path or a signed .app bundle with a stable bundle identifier.

Steps to Reproduce

  1. Install Claude Code with the native installer on macOS.
  2. Use a feature that triggers Accessibility/Automation access (e.g. computer use or driving other apps).
  3. Grant or deny the "2.1.x would like to control this Mac" prompt.
  4. Let Claude Code auto-update to a new version.
  5. The prompt appears again for the new version's binary.

Environment

  • Claude Code: 2.1.284 (native install, also used via the desktop app's Code tab)
  • macOS 27.0 (26A428)

View original on GitHub ↗