skip to content

Tour

The archive

Your disk is where your mail lives.

brev syncs every account you have — Gmail, Fastmail, any IMAP server — into one plain SQLite database per account, with attachments deduplicated by content hash. Back it up by copying a directory. Read it with any tool that reads SQLite. The format is documented as a contract and it will not change under you.

$ls ~/.local/share/brev/archive
me@gmail.com me@fastmail.com me@work.example
$ls ~/.local/share/brev/archive/me@gmail.com
attachments mail.sqlite3
$sqlite3 ~/.local/share/brev/archive/me@gmail.com/mail.sqlite3 'select count(*) from messages'
48213

The client

A mail client with nothing in the way.

One unified inbox across all your accounts, threaded, newest first. Search in a query language you already know. Read, reply, forward, archive, star, trash — every action has a key, every key is in a menu, and ? shows you all of them. It opens your archive read-only, so nothing the client does can ever damage your mail.

provider
  │ sync
  ▼
archive/<email>/mail.sqlite3
  │ read-only open
  ▼
brev client
  │ writes
  ▼
state/overlay.sqlite3
read markers · stars · outbox
The client opens the archive read-only; its own state is a separate file.

Live

Mail arrives while you work.

brev watch runs as a user service and keeps every account current: Gmail through its history API, IMAP through IDLE. The client attaches to it and refreshes in place, keeping your selection and your scroll position.

$brev service install
$brev service status
$brev

Your agents

Bring the agent you already trust.

brev does not ship a model. It runs the coding agent you already have — Claude Code, Codex, whatever you configure — on the message you select, on your machine. Condense a long thread. Archive everything from a sender. Get to inbox zero with the same agent that manages your code. And because the archive is plain SQLite, that agent can work on all your mail from a shell, without brev in the loop at all.

$cat ~/.config/brev/config.toml
[agents.condense]
command = "claude -p --model {model}"
model = "<model id>"
prompt = "Condense this thread to five lines."

Migration coming

Move your mail anywhere. Or restore it from nothing.

brev migrate pushes your archive into any account. Consolidate old accounts into one. Move an address to a new host. Or, when a provider locks you out, restore everything into a fresh account from the copy you own. Providers become interchangeable.

your archive
├─push─▶ gmail
├─push─▶ fastmail
└─push─▶ your own server
Not yet on master: the planned brev migrate.

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.