Here's what I've ruled out so far:
Environment
- MacBook Pro M2, macOS 13.6.1 (Ventura)
- SIP enabled, no third-party kernel extensions
- Screen Recording permission granted to
com.meta.aimac
in System Settings → Privacy & Security - Accessibility permission also granted (tried both with/without)
What the logs actually show
log stream --predicate 'subsystem == "com.meta.aimac"' --level debug
yields this when I click Share Window:
2024-12-19 14:22:11.342 MetaAI[12487]: [ScreenCapture] Requesting capture permission for window 0x7f8b...
2024-12-19 14:22:11.344 MetaAI[12487]: [ScreenCapture] CGWindowListCreateImage returned NULL for window 0x7f8b
2024-12-19 14:22:11.345 MetaAI[12487]: [ScreenCapture] Falling back to full-screen capture
2024-12-19 14:22:11.347 MetaAI[14:22:11.347 MetaAI[12487]: [ScreenCapture] SCShareableContent.current.excludingDesktopWindows: false
2024-12-19 14:22:11.348 MetaAI[12487]: [ScreenCapture] No shareable content found, aborting
The CGWindowListCreateImage
returning NULL is the smoking gun. That window ID (0x7f8b) belongs to my VS Code instance — confirmed via CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID)
. The app sees the window but can't snapshot it.
Things I've tried that didn't work
-
Restarting the Mac (twice)
-
Revoking/re-granting Screen Recording permission via
tccutil reset ScreenCapture com.meta.aimac -
Running Meta AI from Terminal with
--enable-logging=verbose
— no additional output
-
Disabling "Displays have separate Spaces" in Mission Control (some ScreenCaptureKit apps choke on this)
-
Testing with a non-Electron window (Terminal.app) — same NULL return
Workaround that kind of works
If I choose "Share Entire Screen" instead of a specific window, the overlay appears and the model can read my screen. But that defeats the privacy model — I don't want the LLM seeing my password manager or private Slack DMs. The per-window path is explicitly advertised in their launch blog post, so this feels like a regression, not a missing feature.
Suspected root cause
The SCShareableContent.current.excludingDesktopWindows: false
line suggests they're filtering out desktop-level windows, but VS Code on Ventura registers as a regular app window (layer 0, not the desktop layer). Something in their window-filtering logic is misclassifying Electron/Chromium windows on macOS 13. The fallback to full-screen capture then fails because excludingDesktopWindows: false
excludes everything.
Ask
Has anyone gotten per-window sharing working on Ventura (13.x)? Specifically with Electron-based editors (VS Code, Cursor, Zed)? I'm wondering if this is a ScreenCaptureKit version mismatch — the app bundles its own ScreenCaptureKit.framework
stub, but Ventura's system version is 1.0 while Sonoma ships 2.0. If they compiled against the Sonoma SDK but didn't weak-link properly, the SCShareableContent
query could return empty on older macOS.
If you're on Sonoma 14.x and it works, that would confirm the version-gate theory. Also happy to test a TestFlight build if the Meta team monitors this forum.