Claude desktop app (com.anthropic.claudefordesktop) missing NSScreenCaptureUsageDescription/NSAppleEventsUsageDescription — blocks Screen Recording/Automation grants

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 18, 2026

Summary

When running shell commands via a Claude Code session hosted inside the Claude
desktop app on macOS, screencapture and AppleScript calls to System Events
fail with permission errors — and the app never appears as a grantable option
in System Settings → Privacy & Security → Screen Recording or → Automation,
so there's no way to fix it from the Settings UI.

Root cause

com.anthropic.claudefordesktop's own Info.plist has neither
NSScreenCaptureUsageDescription nor NSAppleEventsUsageDescription declared.
Without these usage-description keys, macOS TCC won't offer a consent prompt
or a listable entry for either permission — it just silently denies instead
of asking.

Reproduction

  1. In a Claude Code session running under the Claude desktop app, run:

screencapture -x -R 0,0,100,100 -t png /tmp/test.png
→ fails with "could not create image from rect"

  1. Run: osascript -e 'tell application "System Events" to name of first application process whose frontmost is true'

→ fails with "Not authorized to send Apple events to System Events. (-1743)"

  1. Check System Settings → Privacy & Security → Screen Recording and →

Automation — the app is absent from both lists, so there's nothing to
toggle on.

  1. Confirmed via the bundle itself:

codesign -dv Claude.app → Identifier=com.anthropic.claudefordesktop
/usr/libexec/PlistBuddy -c "Print :NSScreenCaptureUsageDescription" Claude.app/Contents/Info.plist
→ Does Not Exist (same for NSAppleEventsUsageDescription)

Workaround

Running the identical commands from a plain Terminal.app window (outside the
Claude desktop app) works, since Terminal already declares these usage
descriptions.

Impact

Any workflow that needs a Claude Code session (run via the desktop app,
specifically) to actually invoke screencapture or send Apple Events is
silently blocked, with no path to grant permission through normal Settings
UI, since the app never gets the chance to be listed or request it.

Suggested fix

Add NSScreenCaptureUsageDescription and NSAppleEventsUsageDescription
(with a real user-facing explanation string) to the desktop app's
Info.plist so macOS can prompt for and list these permissions normally.

Environment note

Reproduced on an instance of Claude.app run from a mounted disk image
(/Volumes/Claude/Claude.app) rather than an /Applications-installed copy.
Info.plist content shouldn't depend on install location, but noting this in
case it turns out to matter.

View original on GitHub ↗