[BUG] Old version binaries not cleaned up on update, pollute macOS TCC/Full Disk Access list

Resolved 💬 3 comments Opened Apr 4, 2026 by altonplace Closed Apr 4, 2026

Description

Claude Code's auto-updater creates a new binary at ~/.local/share/claude/versions/X.X.XX for each release but never removes old versions. Over time this causes:

  1. Disk space waste — 5 old binaries = 942MB on my machine
  2. macOS TCC pollution — each version binary creates separate entries in Full Disk Access (Privacy & Security), resulting in 20+ stale entries

Steps to Reproduce

  1. Use Claude Code CLI over several weeks with auto-updates
  2. Check ls -la ~/.local/share/claude/versions/ — multiple old binaries present
  3. Check System Settings → Privacy & Security → Full Disk Access — one entry per version

Current State

$ ls -la ~/.local/share/claude/versions/
-rwxr-xr-x  196638704 Mar 28  2.1.87
-rwxr-xr-x  196886384 Mar 31  2.1.89
-rwxr-xr-x  197828752 Apr  1  2.1.90
-rwxr-xr-x  198092944 Apr  2  2.1.91
-rwxr-xr-x  198736976 Apr  3  2.1.92
Total: 942MB of binaries, only 2.1.92 is active

The symlink at ~/.local/bin/claude points to the latest version. Old binaries are never referenced.

The macOS TCC database (~/Library/Application Support/com.apple.TCC/TCC.db) accumulates entries for every version:

/Users/mike/.local/share/claude/versions/2.1.69
/Users/mike/.local/share/claude/versions/2.1.71
/Users/mike/.local/share/claude/versions/2.1.72
... (20+ entries)

Expected Behavior

  • The updater should delete old version binaries after successfully updating
  • Ideally, use a stable binary path (not version-numbered) so macOS TCC grants persist across updates

Environment

  • macOS 14 (Sonoma), Apple Silicon
  • Claude Code CLI installed via curl
  • Auto-updates enabled

View original on GitHub ↗

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