macOS TCC permissions don't persist across updates — binary named by version number
Problem
Each Claude Code update installs a new binary at ~/.local/share/claude/versions/<version> (e.g., 2.1.90). macOS TCC tracks permissions by binary path, so all privacy permissions (Downloads folder, Full Disk Access, etc.) are lost on every update. Updates are near-daily, creating constant friction.
The binary is named by version number, so macOS Privacy & Security shows "2.1.90" instead of "Claude Code" — stale entries pile up and are indistinguishable.
Expected behavior
- Stable binary name (e.g.,
claude-code) so TCC grants persist across updates - macOS shows "Claude Code" in Privacy & Security, not version numbers
- Users grant permissions once
Suggested fix
Name the binary claude-code at a stable path (e.g., ~/.local/share/claude/current/claude-code). The signing identity com.anthropic.claude-code is already consistent — a stable filename + path would let macOS TCC persist grants automatically.
Environment
- macOS 15 (Darwin 25.4.0), Apple Silicon M4
- Claude Code 2.1.90
- Warp terminal (has FDA, but Claude's hardened runtime gets its own TCC entry)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗