Find any text, from any year.
Search in Messages is slow, misses things, and barely reaches back a year. Ago reads the Messages database already on your Mac and builds a proper search index from it, so a wifi password from 2019 or a gate code from 2021 is one search away. Results sit on a year dial, and tapping one opens the whole conversation around it.
The Mac does the indexing and the iPhone asks it questions over your home Wi-Fi. There are no servers, accounts or analytics, and no third-party code. Both apps are native Swift and SwiftUI on a shared core package that reads Apple's undocumented chat.db schema directly, including the message bodies newer versions of macOS only store as serialized NSAttributedString blobs.
Highlights
- Fast full-history search — A SQLite FTS5 index with diacritic folding and prefix matching returns plain-word searches in about 5 ms across 1.3M messages, with operators for sender, chat and date range.
- Prototype first, then a verified port — The search engine started as a Python prototype. The Swift version was ported file by file and checked against it with 580 parity cases and a guid-by-guid diff of the full index. Both come back with zero differences.
- Encrypted pairing, no account — The Mac shows a QR code and the phone scans it. They talk over a Noise protocol channel built on CryptoKit and checked byte for byte against the reference test vectors.
- Works offline — The phone keeps its own copy of the index, synced in checksummed chunks. That copy uses iOS file protection and stays out of iCloud backups, so search works on a plane or with the Mac asleep.
- No network code, enforced — A check runs on every build and fails it if a URL, a networking API or a third-party package shows up. The App Store label reads "Data Not Collected" because there's nowhere to send data.
- Insights — Who you text most, streaks, time of day and attachment storage, all computed on the device.
Built to stay private
Your messages are about as personal as data gets, so the architecture rules out the usual shortcuts. Ago has no backend to fall back on, no crash reporter and no cloud AI. All search runs on the Mac or the phone, and the only connection the app ever makes is the encrypted one between the two devices you paired. Text from other people is rendered as plain native text and never as HTML. Even the iPhone's demo mode for App Review runs on a bundled index of made-up people.
Role
Product, engineering and brand — Swift/SwiftUI for macOS and iOS, SQLite FTS5, CryptoKit (Noise), TestFlight and notarized Mac distribution, marketing site.
Website: ago.believelabs.com


