mailcore · mail.jesh.dev

personal mail infrastructure /// par avion

The AI mailroom that keeps nothing.

mailcore connects Claude to every mailbox you own — triage, drafting, and human-approved sending — while your mail server remains the only copy of your mail. No sync. No index. No database of you.

Sign in Read the operator skill Invite-only. If sign-in answers with a JSON shrug, the door isn't open quite yet.
24 tools 3 agent workflows 0 messages stored 78 ms cold start at the edge 90-day audit self-purge

the law

The schema cannot hold your mail. Literally.

Most "private" services promise not to look. mailcore's database was built without the tables — this excerpt ships verbatim in the production migration.

-- DELIBERATELY ABSENT (pass-through law §0.1): no msg_state,
-- no draft_links, no snoozes — the schema physically cannot
-- hold mail-derived data. All pipeline state is mailbox-
-- expressed (tags, X-MC headers, folders) and read live.
-- Re-adding any cache is a deliberate decision with its own
-- review, never a convenience. migrations/0001_init.sql — the privacy policy, enforced by DDL. A test asserts these tables do not exist.

The complete inventory

  • Your credential, encrypted AES-256-GCM, a key per tenant, wrapped by a master key no human has seen
  • An audit trail tool · allow/deny · timing — content-free, purged after 90 days
  • Messages, subjects, senders, embeddings nothing mail-derived, ever — read live from your server, per request
delete your account = one row cascade. provable, not promised.

the flow

Connect. Scope. Operate.

STEP 01

Connect an inbox

App password or OAuth — Fastmail, Gmail, Outlook, any IMAP. The connection is tested live before it's saved, and if it ever breaks you fix it in place: re-enter one field, retest, resume.

STEP 02

Mint a scoped key

Every key sits on a capability ladder and can be filtered to folders. Before you create it, mailcore shows a live preview of the real messages that key would see — scope first, trust after.

read < tag < draft < send < admin
STEP 03

Let Claude run the mailroom

Triage lands as tags like ai.needs-reply. Drafts land in your Drafts folder. Nothing sends without your token-confirmed approval — and editing a draft anywhere voids its token.

the envelope

Drafts you can see in any client you already use.

AI drafts are real RFC 5322 messages sitting in your real Drafts folder — open Mail.app or Gmail and there they are. The workflow lives in a few X-MC headers on the draft itself…

…and the moment you approve a send, those headers are stripped on the wire. Recipients get a normal email from you. The mailbox stays the single source of truth; walk away any time and everything is still just email.