Scrye
v0.3.7The idea
Email is most organisations' largest unindexed knowledge source — receipts, invoices, contracts, decisions, and the conversation history behind every project. Scrye makes that history queryable in the same shape an agent already uses for code search and document retrieval: short ranked snippets with stable IDs you can expand to full context.
It runs as a Linux service. Operators install it on a server, configure accounts in /etc/scryd/config.toml, and let it index continuously in the background. The HTTP-over-UDS API is open by default — anyone who can reach the socket can query the full index — so the consumer's own API service is the auth boundary, deciding which accounts each end-user is allowed to see.
What it does
Scrye connects to IMAP using a per-account app password, fetches messages over IMAP IDLE, parses MIME, converts HTML bodies to Markdown, and writes everything into a persistent store plus a witchcraft-backed semantic index.
Search comes in three flavours: fulltext (BM25), semantic (T5 XTR embeddings), and hybrid (reciprocal-rank fusion of the two). The same filter chain — sender, folder, account, and date range — applies in every mode. Results return ranked snippets, full message bodies, threads, and the raw .eml source.
Multi-account support is built in: documents carry their account_id, and the search API takes a multi-value ?account_ids=a,b,c filter so the consumer can scope each query to exactly the mailboxes a user is permitted to read.
Install
Download the per-arch tarball from the Releases page, extract, and run the installer:
tar -xzf scryd-vX.Y.Z-x86_64-linux.tar.gz
cd scryd-vX.Y.Z-x86_64-linux
sudo ./install.sh
The installer is non-interactive and idempotent — it creates a system user, lays down the binary, config, and systemd unit, and downloads the verified embedding weights on first start. Then link an account:
sudo scryd add-account
License
MIT

Features
- Background IMAP indexing via IDLE — fetches, parses MIME, and converts HTML to Markdown
- Three search modes: full-text BM25, semantic T5 XTR embeddings, and hybrid RRF fusion
- Multi-account by design — every document carries an account_id for scoped queries
- Filters by sender, folder, account, and date range across every mode
- Returns ranked snippets, full message bodies, threads, and raw .eml source
- HTTP-over-UDS API with a non-interactive, idempotent installer and systemd unit