From devops-tools
Walks through granting macOS Full Disk Access to a launchd-spawned binary. Automates opening System Settings and copying the binary path; user completes with a manual click.
How this skill is triggered — by the user, by Claude, or both
Slash command
/devops-tools:macos-fda-grant-helperThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
What this skill is for: when a launchd-spawned binary (or any non-interactive process) needs to read sandbox-protected paths like
~/Library/Containers/<app>/Data/..., macOS TCC will deny the access until that specific binary is added to the Full Disk Access allowlist in System Settings → Privacy & Security → Full Disk Access. We cannot grant this programmatically — Apple's design — but we can automate everything up to the manual click.
Discovered iter 21 (2026-05-19) after the iter-20 fleet heartbeat finally surfaced a 32-day-old chronic failure in com.terryli.maccy-backup. The launchd job had been failing daily with "Maccy DB unreadable" since 2026-04-17. Root cause: the spawn binary ~/eon/iterm2-scripts/bin/maccy-backup/maccy-backup-runner was not in the FDA allowlist. Interactive shells (iTerm2, Warp, Terminal, mise binaries) all WERE — that's why running the script manually from a terminal succeeds, hiding the problem from casual debugging.
Without this helper, the click-path is buried four levels deep in System Settings, and the absolute binary path has to be typed by hand. The helper makes it a 30-second manual operation instead of "10 minutes of fumbling, abandoned, fails for another week."
fda-grant-walkthrough performs four steps:
pbcopyx-apple.systempreferences://...The user then clicks + → Cmd+Shift+G → Cmd+V → Enter → select binary → toggle ON → authenticate.
After the grant, --check mode confirms the new state without opening any UI.
# Full walkthrough — opens UI, copies path
fda-grant-walkthrough ~/eon/iterm2-scripts/bin/maccy-backup/maccy-backup-runner
# Check-only — useful in scripts / CI / heartbeat-class probes
if fda-grant-walkthrough --check /path/to/binary; then
echo "FDA already granted — proceed"
else
echo "FDA needed — see exit code 3"
fi
| Exit | Meaning |
|---|---|
| 0 | Binary already has FDA (or walkthrough launched successfully) |
| 1 | Usage error (no path given, etc.) |
| 2 | Binary does not exist or is not executable |
| 3 | (--check only) Binary does NOT have FDA, OR caller lacks FDA to read TCC.db |
ln -sf "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/devops-tools/skills/macos-fda-grant-helper/scripts/fda-grant-walkthrough.sh" ~/.local/bin/fda-grant-walkthrough
# 1. Run the walkthrough (System Settings opens; path on clipboard)
fda-grant-walkthrough ~/eon/iterm2-scripts/bin/maccy-backup/maccy-backup-runner
# 2. In Settings: + → Cmd+Shift+G → Cmd+V → Enter → toggle ON → Touch ID
# 3. Verify the grant landed
fda-grant-walkthrough --check ~/eon/iterm2-scripts/bin/maccy-backup/maccy-backup-runner
# 4. Restart the failing launchd job and watch for green
launchctl kickstart -p gui/$(id -u)/com.terryli.maccy-backup
tail -f ~/.local/state/maccy-backup/logs/backup-$(date +%Y%m%d).log
# 5. Tomorrow morning, fleet heartbeat (iter 20) should drop from WARN to INFO
# because failed_services no longer includes com.terryli.maccy-backup=1
macOS TCC enforces a human-authenticated boundary on FDA changes. There's no public API for tccutil to ADD entries — only RESET them. Even MDM (Mobile Device Management) profiles can pre-authorize FDA only for system-distributed apps, not for arbitrary user-compiled binaries. The walkthrough is therefore the optimum: 95% automated (path resolution, clipboard, UI navigation), 5% manual (the click + Touch ID).
~/Library/Containers/--check)After granting FDA via this helper, check:
--check confirm the grant? — Run after toggling ON; if it still returns exit 3, the toggle may not have stuck (try toggling OFF/ON again with auth).npx claudepluginhub terrylica/cc-skills --plugin devops-toolsAudits macOS apps for security vulnerabilities and teaches macOS internals through real-world CVE case studies. Covers sandbox escapes, TCC bypasses, dylib injection, XPC attacks, and kernel exploitation.
Walks through macOS TCC permission diagnosis and repair for che-ical-mcp calendar/reminder tools, including db inspection, tccutil reset, and --setup re-prompt.
Diagnoses macOS workstation issues including kernel panics, failing drives, launchd startup audit, wake reasons, TCC denials, and APFS snapshot space.