Public build

Agent-Native Email

Email stresses me out. It's critically important, but it's noisy and annoying, and I always feel like I'm missing something or someone important. Yes, I've tried automated tagging, Superhuman, Cora, and a half dozen other tactics to tame the monster - all to no avail.

This thriving quest is to master my email inbox + outbox by building a net new, agent-native email infra stack. I want to own my email end to end: a self-hosted server, a cast of agents to manage all the pieces, and real token cost accounting along the journey.

Current problem

Email is a useful and necessary tool - connection, collaboration, coordination, and more - but the stream of emails can be overwhelming and counterproductive.

Thesis

Agents can cost effectively and accurately manage every aspect of a secure, private email architecture from the ground up.

Current progress

It's working! Self-hosted mail server receiving emails, an EA agent triaging the live inbox, and solid documentation along the way.

Follow along

Read the intro essay or subscribe to the .

The build blueprints

I find better outcomes when I spend more time than you'd expect on drafting and editing the plans. I like to organize my documentation from a first principles approach with explicit decision and change logs - that way I always know where I started and how I got to where I am today.

Most importantly, it helps me organize my thoughts for how to support others who also seek this thriving quest.

Design intents

  1. Agent-native foundation - every component managed over SSH, APIs, and CLIs; no browser puppeteering
  2. Eval-first planning - success criteria written first, tested continuously
  3. Tech independence - my domain, my server, my data; any vendor swappable in an hour
  4. Anti-slop publishing - a human gates everything public
  5. Radical receipts - the journey published as it happens, token costs included

Success criteria

  • Done: Mail from the big providers received, and 10/10 test sends landing in their inboxes, not spam

Status (2026-07-17)

The full loop is alive. My thrivinghenry.com mailbox receives on a self-hosted OpenBSD box, outbound sends through a self-managed relay, and the EA agent now posts compact, server-linked briefs to Slack. The first four-email interaction test got 2 of 4 action classifications right (50%): both the attention and FYI items should have been archived with no action. The original brief stays unchanged as the audit artifact; the result is now the baseline for improving triage accuracy.

What's working

  • Owned hardware - receiving + sending works on the self-hosted server
  • Live restore - the full server was rebuilt from backup in 5 minutes 28 seconds
  • Model v. model - I used Fable and Sonnet to review each other's work. They did a good job catching each other's oopsies.
  • Security hardening - Since agents read every email, I protect against prompt injections
  • Newsletter launched - Thriving with AI sent from the owned stack, with replies returning to the self-hosted inbox

What's not (yet)

  • The daily brief's triage accuracy is not yet calibrated against enough reviewed briefs
  • The cast of agents is not fully designed or tested
  • Recursive loops are not fully designed and deployed
  • The newsletter send gate let an overzealous model act before the final dual-inbox test and explicit post-test approval

Next

Close the newsletter launch incident with a hard dual-inbox test + post-test approval gate, make the daily brief genuinely useful, then grow the cast seat by seat.

Key milestones

  1. Trailhead mappedCompleted milestone

    Design spec approved before any building: mail server, newsletter relaunch, this hub, and a five-seat cast of agents - success criteria declared first.

  2. Received inbound email at honey@thrivinghenry.comCompleted milestone

    Mailbox receiving on owned OpenBSD hardware. MX cutover complete; first real delivery in under a second.

    Changelog entry →
  3. First agent hiredCompleted milestone

    The EA triages the live inbox at 100% on its golden-set eval - and flagged a prompt-injection attempt instead of obeying it.

  4. Restore drill: 5m28sCompleted milestone

    The full server was rebuilt from backup during a live drill - target was four hours.

  5. Outbound deliverability gatesCompleted milestone

    10/10 on mail-tester through a self-managed relay (the host blocked direct port 25, so I routed around it) - SPF, DKIM, and DMARC all green.

  6. Newsletter on owned railsCompleted milestone

    Thriving with AI launched from the new stack with replies landing in the self-hosted mailbox - and immediately produced the clearest agent-governance lesson of the quest.

    Changelog entry →
  7. Mobile door to the server mailboxCompleted milestone

    Roundcube is live behind HTTPS, and Slack briefs now link to the server-delivered copy by Message-ID from any browser, including a phone.

    Changelog entry →
  8. Site + quest hub publicCompleted milestone

    This page ships with the site relaunch. If you're reading it, this one's done.

  9. Five-seat agent castUpcomingUpcoming milestone

    Sys Admin, EA, Editor, Publicist, Chief of Staff - with a nightly self-improvement loop.

  10. Gmail becomes a burnerUpcomingUpcoming milestone

    The win condition: nothing important lands at the old address anymore.

Quest log

Made it to inbox zero!

On a brand-new inbox. With almost no email. I classified and actioned 49 messages! It only took 14 hours and 8 minutes of active work, spread across 4 days, 21 hours, and 33 minutes, with 67 merged PRs. Oy.

The first email brief sets a 50% actioning baseline

The first four-email Slack brief got two action classifications right. Both the attention and FYI items should have been archived with no action, so the original brief remains unchanged and the 50% result becomes the baseline for calibration.

The server mailbox gets a mobile door

Roundcube is live on the self-hosted mailbox, so the daily brief can link back to the copy that actually arrived on the server - from a phone or any browser.

Agent-native email launch fumbled by agent

Thriving with AI launched from the new agent-native stack - and OpenAI's Sol sent the launch email before it was fully complete. The most ironic agent workflow possible is now becoming a stricter dual-inbox test, explicit post-test approval gate, and permanent incident trail.

The site you're reading is the launch

The quest hub went public - this page, the receipts, the real token costs, all of it. Two days after the mail server was born, the story of building it became the launch surface itself.

Outbound went live the day the host said no

The hosting provider refused to open direct outbound - so the relay path designed on day one took over. Messages queued for 23 hours flushed in seconds, and the whole stack scored 10/10 on mail-tester. The foundation workstream is complete.

Four pages designed and built in a day

The launch surface went from route inventory to four reviewed page redesigns in one day - drafted as design cards, edited in a shared design pane, shipped as pull requests. 30 routes went dark; 13 pages remain, crawl-audited clean.

The server is alive

My thrivinghenry.com mailbox now receives on hardware I control: MX cutover done, first real message delivered in under a second, and an EA agent triaging at 100% on its golden-set eval.

The trailhead is mapped

Design spec approved before any building: a self-hosted OpenBSD mail server, a newsletter relaunch on owned rails, this quest hub, and a five-seat cast of agents - with success criteria declared up front.

What this costs

Real token spend from the agent run logs. I have yet to see anyone publish this level of detail, so I have no benchmarks or comparables. I don't have a feel for what I believe is the right cost for a daily run, and tracking closely is the fastest way to get there.

Note: I am not counting my $100 Anthropic and $100 OpenAI subscriptions. They are amortized across consulting gigs.

Two different checks: the automated check reruns a small, fixed set of labeled sample emails and verifies only their top-level triage category. It runs whenever the evaluated prompt, model, classifier, or fixtures change, plus weekly as a drift check; other briefs reuse the latest passing result. Henry review is my judgment of the real daily brief. The automated check tests one narrow part of the system; it is not my verdict on the real brief.

All-time human review: 1 brief (July 9), needs adjustment.

The cost table starts July 11, so that review is not in the rows below.

Work cost covers live triage and specialist agents. Regression cost is the fixed sample-email check. Estimated API cost uses list prices; paid now excludes subscription tokens. Updated 2026-07-18.

Swipe to see review and costs →

DateReal inboxAutomated checkHenry reviewWork costRegression costEst. totalPaid now
2026-07-187 emails12/12 passedNot reviewed$1.34$1.83$3.18$0.00
2026-07-173 emailsNot runNot reviewed$0.00$0.00$0.00$0.00
2026-07-163 emails11/11 passedNot reviewed$0.05$0.46$0.50$0.00
2026-07-153 emails11/11 passedNot reviewed$0.14$0.44$0.59$0.00
2026-07-1411 emails11/11 passedNot reviewed$0.56$0.45$1.01$0.00
2026-07-131 email11/11 passedNot reviewed$0.04$0.45$0.49$0.00
2026-07-122 emails11/11 passedNot reviewed$0.09$0.45$0.54$0.00
2026-07-117 emails11/11 passedNot reviewed$0.28$0.45$0.73$0.00
Total37 emails7 daily checks0 reviewed in table$2.51$4.53$7.04$0.00