You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'Needed only when Claude sends Apple Events to a named app; it is not needed for tmux.'
369
+
'The first-use Allow dialog establishes the exact controller-to-target pair for app automation; approve Claude only when macOS names it as controller.'
Copy file name to clipboardExpand all lines: docs/macos-permissions.md
+21-15Lines changed: 21 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,52 +34,58 @@ macOS may attribute `claude`, `codex`, or descendant requests to Ghostty, but co
34
34
35
35
The no-mistakes daemon is launched independently by launchd, so a Ghostty grant does not by itself establish access for gate agents spawned by that daemon.
36
36
37
-
When macOS lists a different responsible entry than this guide predicts, grant only that observed entry and preserve the controller-to-target relationship shown for Automation.
37
+
For every service, grant only the responsible entry macOS observes and preserve the controller-to-target relationship shown for Automation.
38
38
39
39
Apple recommends the TCC attribution log for finding that responsible app or binary on managed machines, and the same read-only log is useful during local diagnosis.
40
40
41
41
## Ghostty
42
42
43
43
-**Full Disk Access - captain must click when protected data is in scope.**
44
-
Add `/Applications/Ghostty.app` when firstmate or a terminal-launched agent must read Mail, Messages, Safari, Home, Time Machine backups, or protected administrative data.
44
+
Terminal-launched work needs this capability only when it must read Mail, Messages, Safari, Home, Time Machine backups, or protected administrative data.
45
+
Grant only the exact responsible entry macOS observes for that protected-path service.
46
+
Add `/Applications/Ghostty.app` only when macOS attributes that protected-path service to Ghostty.
45
47
Firstmate state and repositories stored under ordinary unprotected home-directory paths do not require this grant.
46
-
-**Automation - captain must approve each requested target when Apple Events are in scope.**
47
-
Click Allow in the first target-specific dialog for Ghostty controlling System Events or the other named application.
48
+
-**Automation - captain must approve each requested target when terminal-driven app automation is in scope.**
49
+
Trigger the required operation and use the first-use Allow dialog to identify the exact controller-to-target pair macOS observes.
50
+
Approve Ghostty controlling a target only when macOS shows Ghostty as the controller for that exact pair.
48
51
If that request was denied or later disabled, review or enable the relationship under Automation in System Settings.
49
52
Do not grant Automation for tmux control because tmux never uses Apple Events.
50
53
-**Screen & System Audio Recording - captain must approve when native desktop capture is in scope.**
51
-
This unlocks `screencapture`, ScreenCaptureKit, or native Computer Use when TCC attributes the request to Ghostty.
52
-
Click Allow or Allow While Using the App if macOS presents the first-use dialog, or add or enable Ghostty in System Settings if access was denied, disabled, or must be added manually.
54
+
This unlocks `screencapture`, ScreenCaptureKit, or native Computer Use for the exact responsible entry macOS observes.
55
+
Approve Ghostty only when macOS attributes that Screen Recording request to Ghostty.
56
+
Click Allow or Allow While Using the App if macOS presents the first-use dialog, or add or enable the observed entry in System Settings if access was denied, disabled, or must be added manually.
53
57
It is not needed for `chrome-devtools-axi` page screenshots.
54
58
-**Accessibility - captain must click when native application control is in scope.**
55
-
This unlocks accessibility-tree inspection, focus changes, clicks, typing, and other UI control when TCC attributes the request to Ghostty.
59
+
This unlocks accessibility-tree inspection, focus changes, clicks, typing, and other UI control for the exact responsible entry macOS observes.
60
+
Approve Ghostty only when macOS attributes that Accessibility request to Ghostty.
56
61
It is not needed for tmux or Chrome DevTools Protocol control.
57
62
58
63
## Claude Code
59
64
60
65
-**Full Disk Access - captain must click only when macOS attributes protected access to a separate entry.**
61
66
Grant only the exact responsible entry macOS observes when protected data is in scope because command ancestry alone cannot identify it.
62
-
-**Automation - captain must approve each requested target when Claude sends Apple Events.**
63
-
The relationship is Claude Code controlling System Events or another named application, and it appears only after that target-specific request.
67
+
-**Automation - captain must approve each requested target when this workflow performs app automation.**
68
+
Trigger the required operation and use the first-use Allow dialog to identify the exact controller-to-target pair macOS observes.
69
+
Approve Claude Code controlling a target only when macOS shows Claude Code as the controller for that exact pair.
64
70
Click Allow in the first dialog, or use Automation in System Settings to review or change a recorded relationship.
65
71
Claude Code does not need Automation for tmux.
66
72
-**Screen & System Audio Recording - no baseline grant is needed.**
67
-
Grant the responsible entry only if a Claude-launched native visual tool captures the desktop rather than a browser page through DevTools.
73
+
Grant the exact responsible entry macOS observes only if a native visual tool invoked by this workflow captures the desktop rather than a browser page through DevTools.
68
74
Approve a first-use dialog if macOS presents one, or use System Settings after denial or when adding the entry manually.
69
75
-**Accessibility - no baseline grant is needed.**
70
-
Grant the responsible entry only if a Claude-launched native UI tool inspects or controls another application.
76
+
Grant the exact responsible entry macOS observes only if a native UI tool invoked by this workflow inspects or controls another application.
71
77
72
78
## Codex
73
79
74
80
-**Full Disk Access - captain must click only when macOS attributes protected access to a separate entry.**
75
81
Grant only the exact responsible entry macOS observes when protected data is in scope because the current Codex command path cannot identify it.
76
-
-**Automation - captain must approve each requested target when Codex sends Apple Events.**
82
+
-**Automation - captain must approve each requested target when this workflow performs app automation.**
77
83
The helper reports Codex Automation capability as `UNKNOWN` because a command found on `PATH` does not establish the active TCC controller identity.
78
84
When possible, it separately reports the exact `codesign` result for that current command filesystem target without applying the result to another installation or running process.
79
-
Click Allow in the first dialog, or use Automation in System Settings to review or change a recorded relationship.
85
+
Trigger the required operation and approve only the controller-to-target pair shown by the first-use Allow dialog, or use Automation in System Settings to review or change a recorded relationship.
80
86
Apple documents that entitlement as permission to prompt rather than permission to bypass the prompt in [Apple Events Entitlement](https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.security.automation.apple-events).
81
87
-**Screen & System Audio Recording - captain must approve for native Codex Computer Use.**
82
-
This unlocks desktop pixels for Computer Use when the responsible entry is Codex, Ghostty, or the Codex Computer Use helper shown by macOS.
88
+
This unlocks desktop pixels for Computer Use only for the exact responsible entry macOS observes for that Screen Recording request.
83
89
Click Allow or Allow While Using the App if macOS presents the first-use dialog, or add or enable the responsible entry in System Settings if access was denied, disabled, or must be added manually.
84
90
It is not needed for `chrome-devtools-axi` page screenshots.
85
91
-**Accessibility - captain must click for native Codex Computer Use.**
@@ -94,7 +100,7 @@ Apple recommends the TCC attribution log for finding that responsible app or bin
94
100
Use the exact responsible entry shown by macOS or TCC attribution, and treat the configured path printed by the helper as diagnostic evidence only.
95
101
A Ghostty Full Disk Access grant does not by itself establish protected-path access for the independently launched daemon tree.
96
102
-**Automation - captain approval is necessary but not sufficient for daemon-launched Apple Events.**
97
-
Automation is still a pair such as no-mistakes controlling System Events or another named application.
103
+
Trigger the required operation and use the first-use Allow dialog to identify the exact controller-to-target pair macOS observes.
98
104
The helper reports the running daemon capability as `UNKNOWN` because inspecting the configured path cannot establish the entitlement of an already loaded process image.
99
105
Apple documents the entitlement as target-signing-dependent, so a separate current-image inspection is required before making any capability claim.
100
106
-**Screen & System Audio Recording - captain must approve for daemon-launched Codex Computer Use.**
0 commit comments