Skip to content
v1 · macOS AI, native to your inbox

Your inbox,
finally handled .

MailAgent reads every email the moment it lands — classifying, prioritizing, summarizing and drafting replies. What matters rises; noise settles. Every claim links back to the source.

Local-first · stays on device claude-sonnet-4-6 Open source · MIT
MailAgent — Inbox
2 unread · 674 total
Alex Rivera · northwind.io14:23
Re: 多区域部署 — 关于 rate limit
看大家讨论得挺全面了,我补充几点一线观察供参考…
Important需要决策
Sentry · sentry.ioEN14:08
[Alert] webhook 8100: HTTP 502 from upstream
Triggered: nginx → webhook (process down). You are oncall.
CriticalReply Needed
Maya Park · acme-labs.dev11:40
Re: 周报 — W22 项目进度对齐
这周迁移基本收口了,6,184 封邮件全部迁完…
Normal仅供参考
Linear · linear.appEN昨天
ENG-1421 assigned to you · "V1 前端脚手架"
Sam Okafor moved this issue into "In Progress"…
Normal
Stripe · stripe.comEN昨天
Your invoice for May is available
Receipt #4821 · $79.00 paid to OpenRouter…
Normal可归档
Reply
[Alert] webhook 8100: HTTP 502 from upstream
FromSentry · sentry.ioDate2026/05/29 · 14:08
AI Fields · 5 reviewedclaude-sonnet-4-6
Summary
webhook 进程掉线导致上游 502,你是本次 oncall。建议给 update 调用加指数退避(3→9→27s)并重启进程。
Reply Suggestion
A draft reply is ready · expand
PriorityCriticalActionReply NeededCategory系统告警

Hi all,

I think the discussion is already thorough — here are a few notes from the field for reference: rollout pacing differs by market and adoption isn’t uniform…

One email · five things, automatically
Categorize Prioritize Summarize Draft reply Suggest action
01 AI Triage

Every email arrives already read.

Not a batch job after the fact — processed on arrival. Category, priority, a one-line summary and a suggested action, written structurally into every message so the list tells you what to open first.

Category · Priority

Category & priority, at a glance

Each email is tagged with a category (product, decision-needed, FYI…) and a priority. Critical mail surfaces in red; FYI settles to the bottom — no more digging through 674 messages.

CriticalUrgentImportantNormal
Summary

One-line summaries

Long threads and deep quote chains, compressed into a point you read in two seconds — before you ever open it.

Reply Suggestion

Replies, pre-drafted

For mail that needs a reply, a context-aware draft is waiting. Tweak a line or send as-is — you stay in control.

Action

A suggested next step

"Needs a decision," "awaiting sign-off," "archive" — it tells you not just what an email says, but what to do with it.

Full-text · FTS5

Instant full-text search

A local FTS5 index over 9,000+ emails. Hit ⌘K for millisecond results — and a graceful fallback when KOS is offline.

AI Fields · reviewed
AI Fields · 5 reviewedclaude-sonnet-4-6
Summary
webhook 进程掉线导致上游 502,你是本次 oncall。建议给 update 调用加指数退避(3→9→27s)并重启进程。
Reply Suggestion
Draft · awaiting you
已给 update 加 backoff(3→9→27s),进程已重启,prod 恢复。长期方案排到性能优化。
PriorityCriticalActionReply NeededCategory系统告警
02 AI Fields

The AI's reasoning, right there in the email

Every email carries an AI FIELDS panel up top: summary, priority, action, category, reply suggestion — all structured, reviewable, and markable as "reviewed." Not a black box; a transparent assistant.

  • Structured fields, not prose The LLM emits JSON blocks rendered natively — stable, checkable, back-fillable.
  • Bilingual UI, body untouched UI, fields and actions switch CN/EN; the email body always stays in its original language.
  • You set the tone Six accent colors, light/dark, interface materials — one switch re-skins everything.
03 Ping Island · Live

The mail that matters comes to you

MailAgent pushes what's critical to the Dynamic Island. A high-priority email lands, gets triaged, and its gist and suggested action float at the top of your screen — no app, no inbox dive.

  • Real-time pings Only the genuinely urgent interrupts you; the rest is archived in silence.
  • Act from the island Archive, snooze, open — common actions in a single tap.
  • Twice-daily digest At 9am and 6pm, the island sums up the last 24 hours.
MailAgent · Ping IslandLIVE
AR
CRITICALAlex Rivera · northwind.io
Re: 多区域部署 — 关于 rate limit
需要决策 · 建议给 webhook 加指数退避,并三端统一新用户引导。
04 Report Agent

A daily briefing you'll actually finish

Jarvis reviews the last 24 hours and curates a structured report: what's been handled, what still needs you, the key facts you must know, and the rest summarized. Weekly and monthly run on the same engine.

/agents · Daily digest
AgentsReports8Chats
History
06/01日报已就绪
3 封紧急:PoC 排期 + 需求待拍板
32 mail3 urgent
05/31周报已就绪
W22:两大标案进入决策窗口
187 mail12 urgent
05/31月报已就绪
五月月报:PoC 进入决赛圈
742 mail41 urgent
日报claude-sonnet-4-6Regenerate
邮件日报
2026年6月1日 · 过去 24 小时
昨天共 32 封邮件,Jarvis 已自动处理 28 封;有 3 封紧急需要你亲自跟进,主要围绕 PoC 排期与一处需求锁定。其余多为系统通知与抄送知会,已归档。
32
总邮件
9
未读
3
紧急
28
AI
4
待你
  • Daily / weekly / monthly, scheduled Detail by day, trends by week, a high-level recap by month — with catch-up on launch so nothing is missed.
  • Every line links to source Every email in the report is clickable — straight to the message in-app or its Notion page.
  • Trends from real counts Weekly and monthly stats are computed deterministically in code — never hallucinated by the model.
  • Run now · edit prompt · pick model Generate on demand, adjust the schedule, and edit the report prompt right in /agents.
Custom AI · KOS bridge
Custom AI · chat with an email
U
这个供应商以前的合同条款是什么?
KOS → query · find_trajectory · sources/email/*
上一版合同(2025-11)约定 24 个月、按年付,附 SLA 99.5%。 来源:3 封邮件 ↗
05 Custom AI · KOS

Ask about an email — it goes and looks things up

Custom AI bridges to the KOS knowledge base over MCP — email sources, an entity graph, historical trajectories. The model decides what to query from context and answers with citations. We don't spoon-feed it; we hand it the tools and let it drive.

  • Read-only guardrails Only read tools (query, search, traverse) are exposed; writes are blocked at the bridge to keep the graph clean.
  • Graceful degradation If KOS is offline, it falls back to local FTS5 search — the conversation never breaks.
06 Provenance

The AI writes the prose. Code guards the numbers.

The one thing an email assistant must never do is make things up. MailAgent's discipline: counts, links and email IDs are back-filled deterministically by code; the LLM only handles wording and grouping. The blast radius of a mistake is confined to phrasing.

AI Fields · 5reviewed
Summarywebhook 进程掉线导致上游 502,你是本次 oncall。建议给 update 调用加指数退避(3→9→27s)并重启进程。
PriorityCritical
Category系统告警
Countscode-filled  9 unread · 674 total
Sourcenotion.so/…830d80cb ↗ · open in app ↗
01
Numbers computed in code

Totals, unread, urgent, processed, pending — all deterministic and consistent with the database.

02
Hallucinated IDs discarded

Any email ID the model emits is validated against the real candidate set; invented ones are dropped.

03
Links are authoritative

Every source link is generated from a real page_id — it always lands on the right message.

04
Local-first

Mail lives in local SQLite read directly by Electron; the body is never sent out for translation.

07 Observability

Every call, fully accounted for

The LLM and system dashboards lay the real numbers bare: throughput, tokens, latency, cache hits, sync health, dead-letter queue. Not decorative charts — the actual ledger of 5,904 runs.

5,904
Processed · 7d
over the last week
1.11M
Input tokens
input tokens
42.5s
Avg latency
average per email
9,311
Synced mail
emails synced
LLM Dashboard

LLM Dashboard

Processed · 7d
5,904
5,894 success
Input tokens
1.11M
1,110,396
Output tokens
415.8K
415,819
Avg latency
42.5s
over 5,894 ok
Status
5,904
total
success5,894
pending10
Cache hit rate
5.0%target ≥ 70%
Cache write
856.1K
Cache read
3.16M
08 Anywhere

At home on the desktop, with you on mobile

The same design system and the same AI judgments, responsive down to the phone. Focused/Other split, priority flags, island pings — just as clean on a narrow screen.

响应式 / Responsive深浅主题 / Light · Dark6 Accents
9:415G ▪ ▪▪
MailAgent
1 urgent · decision
LIVE
MailAgent
Alex Rivera · northwind.io14:23
Re: 多区域部署 — 关于 rate limit
Important需要决策
Sentry · sentry.ioEN14:08
[Alert] webhook 8100: HTTP 502 from upstream
CriticalReply Needed
Maya Park · acme-labs.dev11:40
Re: 周报 — W22 项目进度对齐
Normal仅供参考
09 Get MailAgent

Hand over your inbox

A local-first macOS desktop app, open source. Download, connect your mailbox, and the AI takes over from the next email.

STEP 01
Download & install

Grab the latest .dmg from Releases and drop it in Applications.

STEP 02
Connect mail

Connect over DavMail / IMAP; mail syncs to local SQLite.

STEP 03
Let the AI run

Add your model key

Requires macOS 13+ · bring your own model key · your mail never leaves this device
10 FAQ

A few more things

Where does my mail go?
Mail is synced and stored in a local SQLite database on your machine, read directly by Electron. Only AI processing sends relevant content to the model you configure. The email body is never sent out for translation.
Will it send or archive on its own?
No. In v1, suggested actions are display-only — you stay in control. Replies are drafts; archiving is your click. Bulk execution is for a later version and always behind your confirmation.
Can I trust the numbers in reports?
Yes. All counts, links and email IDs are computed and back-filled by code, consistent with the database. The LLM only handles wording, grouping and highlights; any ID it emits is validated, and invented ones are discarded.
Which languages and models?
The UI, fields and AI quick-actions toggle between 简体中文 and English; the email body stays in its original language. The default model is claude-sonnet-4-6, swappable in settings.
What kind of project is this?
MailAgent is an open-source personal project — an AI email assistant for heavy mail users. The design system, Ping Island, report agent and KOS bridge all live in a public repo. Star it, file issues, or run your own.