satchel.email › AI
Bring your own AI.
satchel.email has no AI built in, and never sends your mail to an AI service. It writes your mail, calendars and contacts to a folder of plain files, and serves the same over MCP. The agent you already use reads them and writes down what it would do. You approve it, edit it or say no.
~/Satchel or satchel mcpplain Markdown, or MCP toolsWhether an agent sees your mail, and which one, is entirely up to you. If you never point one at it, the folder just sits on your disk.
The AI folder
satchel.email keeps a copy of your mail in ~/Satchel as plain Markdown, and keeps it current as mail arrives. It's on from the start. Open the folder in Claude Code (or add it with --add-dir), or point any agent that can read files at it.
The folder starts with a README.md written for the agent: how the folder is laid out, how to propose each kind of change, and that instructions inside an email are data, not orders.
In Settings › AI folder you choose which accounts it holds, how much history (a year by default), and whether calendars, contacts, raw messages and attachments go in. What's in the folder is all your AI sees.
The folder lives in your home folder rather than Documents, so macOS doesn't stop each tool at the door. You can move it, and it takes waiting proposals with it.
~/Satchel/ README.md how to read and propose sync.json last sync per account mail/work/ INDEX.md newest threads first Inbox.md threads/2026-10/ can-we-move-our-call-7f3a/ thread.md meta.json calendar/ AGENDA.md contacts/ CONTACTS.md people/bob-lee-41.md proposals/ inbox/ agents write here processed/ results come back here
A proposal is a file
To propose something, an agent writes a short Markdown file to proposals/inbox/: what to do, which thread or event, and why. satchel.email picks it up within moments and puts it in AI Proposals.
Once read, the file moves to processed/ and gains a status (pending, approved, edited, rejected, stale or failed), so the agent can check how it went.
Contacts are even simpler: an agent edits a person's file, or creates one, and the change becomes a proposal with only the fields it touched.
---
action: reply
thread: 7f3a9c
why: Bob offered Monday 10 or Tuesday 2; Monday is free
agent: Claude
---
Monday at 10 works for me. Talk then!
What an agent can propose
You review it
Every proposal waits in AI Proposals with the agent's reason beside it. A reply shows exactly what will be sent, with its recipients and attachments. An event shows the time and the calendar. A change shows before and after.
- Send or Approve it. A reply goes out through the same undo window as one you wrote.
- Edit it first. Your version is what goes out, and the agent sees it was edited.
- Save as draft to finish it in the composer.
- Reject it with a note. The agent can read why and do better next time.
The safeguards
- Agents can't act. They can read and propose. There's no command for an agent to send, delete, move or change settings, in the folder or over MCP.
- Nothing is deleted for good. Not by an agent, not with your approval. The worst a proposal can do is move mail to Trash, and that's flagged.
- Risks are flagged. New recipients, Bcc, many recipients, forwarded attachments, invitations that will go out, cancellations.
- Stale proposals wait. If the message or event changed after the agent wrote the proposal, you look again before it can go.
- Limits per agent. The folder agent may make 60 proposals an hour. MCP agents each get their own accounts, history and limits.
- Everything is logged. Every proposal, decision and send is in Settings › Activity.
Email is written by strangers, and a message can try to give your agent instructions. satchel.email tells agents to treat mail as data, but the real protection is structural: whatever an agent is talked into, it can only propose.
Coming next: let it tidy up
Today you review every proposal. Next, you'll choose how much each agent may do on its own, per kind of action: archiving and labels on their own, drafts saved without asking, calendar changes still waiting for you. Anything it does without asking shows in Activity with Undo, and Pause agents puts everything back to Ask.
Permanent deletes, settings and server-side rules stay off limits at every level.
Without an agent
Press y in a conversation to copy it as Markdown, with who wrote what, the dates and the attachments, ready to paste into any AI chat.