skip to content

Own your mail. All your mail, from every account, on your own computer. One SQLite file per account. A fast terminal client and your own agents on top.

the outside world

the mail engine

the interfaces

Gmail history.list messages.send
any IMAP server IMAP · IDLE SMTP
sync the outbox · at most once
the archive archive/<email>/mail.sqlite3 attachments/ the primary copy · one per address
the only writer
the daemon daemon.lock · daemon.sock syncs every account on its own schedule drains the outbox
queued mutations · the outbox
the overlay state/overlay.sqlite3 read markers · stars · the projection queued mutations · drafts · the outbox it never stores archive content
read-only
the read API and the CLI marchives-core · READ-API.md brev search · ls · show · stats · export plain SQLite — any tool that reads it, with no brev process running
your agents claude -p · codex exec spawned by the client, or run against the CLI alone
brev the terminal client
read + write
The order matters because it is the architecture.

Legend

the providers · Gmail · IMAPThe provider is no longer where the mail lives; it is where the mail arrives.
the archive · archive/<email>/mail.sqlite3All your mail, every account, on your disk, in one SQLite file per account.
the daemon · daemon.sockMail arrives continuously: Gmail through history.list, IMAP through IDLE plus polling; the client refreshes when a pass changes anything.
the overlay · state/overlay.sqlite3Everything mutable it records lives in state/overlay.sqlite3: local read markers, local stars, the server-backed message projection (seen, flagged, labels, mailbox membership, trash state), queued server-bound mutations with their undo data, drafts, outbox rows, cached OAuth tokens and remembered UI state.
the read API and the CLI · marchives-coremarchives-core is the reference reader for the archive format documented in SCHEMA.md. The CLI's search and ls commands are thin wrappers over exactly these functions; a richer frontend uses them directly.
the client · brevThe client is a separate thing that opens the archive read-only.
your agents · claude -p · codex execbrev spawns it from a command template and hands it the message; nothing is sent to a brev server.

brev is part of HyperClank

Built by the people who built Gantry, on the same principle: keep the trustworthy part small, and put everything else behind a contract. Buy it once; updates included. Linux today.

before you buy
The archive format is the contract. Read it on the docs page; the price is on the pricing page.