Search
screenpipe provides powerful search across all your captured screen and audio data with natural language queries, time-based filters, and content-type filtering.Search API
Basic Search
Query Parameters
Search query text. Searches both OCR text and audio transcriptions.
Number of results to return (max 1000).
Pagination offset.
Filter by content type:
all(default)ocr(screen text only)audio(transcriptions only)ui(UI events)
Start of time range (ISO 8601 or Unix timestamp).
End of time range (ISO 8601 or Unix timestamp).
Filter by application name (e.g.,
Chrome, Code).Filter by window title (partial match).
Filter by browser URL (partial match, works with Chrome, Safari, Firefox, Edge).
Only return content from focused windows.
Filter audio by speaker IDs (comma-separated:
0,1,2).Filter audio by speaker name (case-insensitive partial match).
Minimum content length (characters).
Maximum content length (characters).
Include frame image data (base64-encoded).
Truncate content to this many characters (middle-truncation).
Advanced Queries
Time Range Search
Time formats supported:
- ISO 8601:
2026-03-08T14:30:00Z - Unix timestamp:
1709911800 - Relative: Use JavaScript
Dateor shelldatecommand
Application-Specific Search
- App Names
- Browser URLs
Common app names:
- macOS:
Chrome,Safari,Code,Finder,Terminal,Slack,Zoom - Windows:
chrome.exe,code.exe,explorer.exe,cmd.exe - Linux:
chrome,code,nautilus,gnome-terminal
Speaker-Specific Search
Speaker IDs are assigned automatically during transcription. Use the
/speakers endpoint to view and label speakers.Search Implementation
Full-Text Search (FTS5)
screenpipe uses SQLite FTS5 (full-text search) for fast keyword matching:FTS5 Features:
- Stemming: Searches
runningmatchrun,runs,runner - Ranking: Results sorted by relevance (BM25 algorithm)
- Phrase search: Use quotes for exact phrases:
"screenpipe documentation" - Boolean operators:
meeting AND notes,bug OR error
Accessibility Text Search
New event-driven frames store accessibility text directly on the frame row:Thumbnail correctness: Since accessibility text is on the same row as the frame, search results always show the correct screenshot — no more desync between OCR text and thumbnails.
Search Cache
Frequent searches are cached to reduce database load:Search Response Format
Performance
Search Speed
- FTS5 Query
- With Frame Extraction
- Keyword search: 10-50ms (indexed)
- Time range filter: +5-10ms
- App/window filter: +5-10ms
- Total (cached): less than 5ms
- Total (uncached): 20-100ms
Optimization Tips
Reference
Source files:- Search API:
crates/screenpipe-engine/src/routes/search.rs - Database search:
crates/screenpipe-db/src/search.rs - FTS5 schema:
crates/screenpipe-db/src/schema.sql - Frame extraction:
crates/screenpipe-engine/src/video_utils.rs