screenpipe needs macOS Screen Recording permission to capture frames and run OCR on what you see. if the engine fails to start with a permission error — including the “engine stuck” screen during onboarding — this page walks through every recovery path.Documentation Index
Fetch the complete documentation index at: https://docs.screenpi.pe/llms.txt
Use this file to discover all available pages before exploring further.
grant it (the normal path)
- open System Settings → Privacy & Security → Screen & System Audio Recording.
- toggle screenpipe ON. macOS will prompt you to quit and reopen — click Quit & Reopen.
- restart screenpipe. the engine should start within a few seconds.
if you switched build channels
macOS’s TCC database (transparency, consent & control) tracks Screen Recording permission per bundle id, not per app name. if you previously granted permission to one build and switched to another, the new build looks like a brand new app to macOS — your earlier grant doesn’t apply. screenpipe ships under four bundle ids:| bundle id | channel |
|---|---|
screenpi.pe | production (stable release) |
screenpi.pe.beta | beta channel |
screenpi.pe.dev | local dev build (cargo / bun tauri dev) |
screenpi.pe.enterprise | enterprise distribution |
reset and re-request
when the permission is in a wedged terminal state — screenpipe shows in System Settings but toggling does nothing, or it doesn’t show at all — wipe the TCC record for that bundle id and re-trigger the prompt. the in-app reset & re-request button does this for you. it runs:nuclear option
if per-bundle resets don’t recover, wipe every app’s Screen Recording grant in one shot:related permissions
screen recording is the most failure-prone, but screenpipe also asks for:- microphone — for audio capture. System Settings → Privacy & Security → Microphone. reset:
tccutil reset Microphone <bundle-id> - accessibility — for app/window context. System Settings → Privacy & Security → Accessibility. reset:
tccutil reset Accessibility <bundle-id> - input monitoring — for keystrokes (optional). System Settings → Privacy & Security → Input Monitoring. reset:
tccutil reset ListenEvent <bundle-id>