Skip to main content

overview

screenpipe is a Rust application that continuously captures your screen and audio, processes them locally, and stores everything in a SQLite database. it serves a REST API on localhost:3030 for querying your data.

data flow

crates

screenpipe is a Rust workspace with specialized crates:

layers

1. capture

whathowcrate
screenper-monitor frame capture at configurable FPS (default 1.0, macOS 0.5)screenpipe-vision
audiomultiple input/output devices in configurable chunks (default 30s)screenpipe-audio
UI eventskeyboard, mouse, app switches, clipboard via accessibility APIsscreenpipe-accessibility

2. processing

enginetypeplatform
Apple VisionOCRmacOS
Windows nativeOCRWindows
TesseractOCRLinux
Whisperspeech-to-textlocal, all platforms
Deepgramspeech-to-textcloud API
additional processing: speaker identification, PII redaction, frame deduplication (skips identical frames).

3. storage

all data stays local on your machine:
  • SQLite at ~/.screenpipe/db.sqlite — metadata, OCR text, transcriptions, speakers, tags
  • media at ~/.screenpipe/data/ — MP4 screen recordings, audio chunks

4. API

REST API on localhost:3030:
endpointdescription
/searchfiltered content retrieval (OCR, audio, UI events)
/search/keywordkeyword search with text positions
/frames/{id}access captured frames
/healthsystem status and metrics
/raw_sqldirect database queries
/ai/chat/completionsApple Intelligence (macOS 26+)
see API reference for the full endpoint list.

5. pipes

pipes are AI agents (.md prompt files) that run on your screen data. they’re executed by an AI agent that reads the prompt, queries the screenpipe API, and takes action. pipes live in ~/.screenpipe/pipes/{name}/ and run on cron-like schedules.

6. desktop app

the desktop app is built with Tauri (Rust backend) + Next.js (React frontend):

database schema

key tables:
tablestores
framescaptured screen frame metadata
ocr_texttext extracted from frames
video_chunksvideo recording file metadata
audio_chunksaudio recording metadata
audio_transcriptionstext from audio
speakersidentified speakers
ui_eventskeyboard, mouse, clipboard events
tagsuser-applied tags on content
inspect directly:
sqlite3 ~/.screenpipe/db.sqlite .schema

resource usage

runs 24/7 on a MacBook Pro M3 (32 GB) or a $400 Windows laptop:
metrictypical value
RAM~600 MB
CPU~10%
storage~30 GB/month at 1 FPS

source code