Building a Local-First Screenshot Library with OCR
How Supashot uses Apple's Vision framework to index every screenshot locally — no cloud, no accounts, no privacy trade-offs.
Building a Local-First Screenshot Library with OCR
Most screenshot tools that offer search do it by uploading your images to the cloud, running OCR on a server, and storing the text index remotely. That works, but it comes with privacy trade-offs.
Supashot takes a different approach: local-first OCR using Apple's Vision framework.
Why local-first matters
Your screenshots contain sensitive information:
- API keys and tokens in terminal windows
- Private messages and emails
- Internal dashboards and analytics
- Unreleased product designs
Uploading all of this to a cloud service for OCR indexing creates a security surface area you may not want.
How it works
When you capture a screenshot, Supashot:
- Saves the PNG to your local library.
- Runs OCR via the Apple Vision framework (on-device, no network).
- Stores the extracted text in a local SQLite index.
- Makes the text searchable instantly.
All of this happens in under a second. There is no network call. No external API. No data leaves your Mac.
The technical stack
- ScreenCaptureKit for capture
- Apple Vision (VNRecognizeTextRequest) for OCR
- SQLite for the text index and metadata
- Swift + SwiftUI for the native macOS experience
Performance
Apple Vision is surprisingly fast on modern Macs. A typical 1920x1080 screenshot is OCR'd in ~200-400ms on an M1 Mac. The SQLite index supports full-text search (FTS5) for near-instant querying across thousands of captures.
The privacy guarantee
Because everything is local:
- We cannot see your screenshots.
- We cannot see your search queries.
- We cannot lose your data in a breach.
- You do not need an account.
Your visual memory stays on your machine, where it belongs.