Skip to content

Features

An inbox that renders your business, run by an agent.

Each email shows the live thing it's about: the order, the account, the login code. An agent works your inbox around it — triaging, drafting, running your lists. Underneath, the stack you own: shared inboxes, a sending API, and a mailing list, one worker on your own Cloudflare account.

What it does

Three layers, one inbox.

Tinbox stacks three things most tools sell separately: Skills that render and act, an agent that works the queue, and an extension layer that lets you reshape all of it.

Skills — the inbox knows your business

A skill reads each incoming email and renders the live thing that matters — a login code, a receipt, a flagged complaint, a live order pulled from your store — with the controls to act on it. 12 ship in the box; the real power is the ones you write, wired to your store, your ledger, or your support desk.

See the live cards and the order wired to a real store →

The agent — it runs itself, supervised

An agent works your whole inbox the way an assistant would: sorting, flagging, researching, drafting, running your campaigns — and answers with cards that deep-link into the app. Autopilot takes the reversible work on a schedule and queues anything that sends for your one click. You keep the final say.

Watch it run →

Extend — because the whole stack is yours

Skills, plugins, agents, automations, and a sandboxed line to any system you run — all behind one typed manifest the chat, the CLI, and MCP share. Because it's checked-in code, every power your inbox has is reviewable in a PR.

See the ten-line skill and the config →

Three products in one

The stack underneath — so the personalization has something to run on.

Skills and agents need a real inbox to work on. That's this: three products you'd otherwise rent, each importable from the tool you run today, and free of the per-seat, per-domain, and per-contact meters. Gmail, Resend, and Mailchimp — gone in one deploy.

replaces Gmail / Workspace

Shared team inboxes

Personal and shared addresses with a companion web app — threads, full-text search, assignment, internal notes, and role-based access. One workspace the whole team shares: people get a clean UI, agents get the same API behind it.

  • support@ / billing@ as a shared queue
  • Assign, note, and resolve threads
  • Import your existing mail
  • Role-based access for staff + outside collaborators

No per-seat billing — bring the whole team.

replaces Resend

Transactional sending API

A POST /emails API plus a typed SDK your services call for password resets, magic links, receipts, and notifications — sent from your own domains.

  • Idempotency keys so a retry never double-sends
  • Suppression list honoring bounces + complaints
  • A full delivery event log
  • SPF / DKIM / DMARC aligned on your zone

Send from as many domains as you run — no per-domain fee.

replaces Mailchimp

Mailing list + newsletters

Your subscriber list in your own database, with throttled, ledger-backed broadcasts and open + click analytics. A newsletter is a Markdown file you review and merge.

  • Import subscribers (CSV) into your own database
  • Segments + audiences
  • Merge the PR — that's the human gate — to send
  • Throttled fan-out, exactly-once per recipient

No per-contact pricing — your list size is yours.

And every address in between — support@, billing@, legal@, an agent inbox.

Transactional & auth email

Password resets, magic links, 2FA codes, receipts, and notifications: your app calls one POST /emails, sent from your domain with idempotency keys so a retry never double-delivers.

Support inbox

support@ as a shared queue: assign threads, leave internal notes, and let an agent draft the first reply while a human approves the send. Full-text search across every past ticket.

Legal & compliance inbox

legal@ with an immutable, append-only record: every message is a file in git, blameable and timestamped. Agents surface and draft responses; nothing sends until a human signs off.

Staff & collaborator inboxes

Personal addresses for your team and scoped access for outside collaborators (contractors, agencies, advisors) with role-based permissions deciding who reads and who can send.

Newsletters & announcements

Bulk sends to your subscriber list with segments, throttled fan-out, and open + click analytics, authored as a Markdown file and shipped by merging the PR.

Agent responses

Wire an agent to any inbox to triage, label, and draft replies the moment mail arrives. Give it a scoped token to send routine answers on its own, or keep a human on every send. You set the line.

Build surfaces

MCP, CLI, SDK — drive it from anywhere.

MCP

Point Claude, Cursor, or any MCP client at /mcp and it can search, read, draft, summarize, and (if allowed) send. One-click OAuth from the Claude app, or a capability-token header.

CLI

npx tinbox sends, searches, and manages drafts — every command takes --json and a scoped token, so a coding agent or a cron job can work the mail.

SDK

A typed SDK (@tinbox/sdk) for your own apps: POST /emails, read threads, check delivery — fully typed against the same tRPC API the inbox uses.

It all runs locally first — the engine, the Skills, the integrations, the agent config — on your machine before they ship. Test a Skill against fixtures, wire an integration to your store, draft with an agent, then deploy when it's green.

And the tool surface is yours to grow. Drop in a Skill, a whole plugin module — its own /plugins/… routes, cron jobs, mail hooks, database tables, and scoped secrets — or a new agent tool. Add it once to the typed manifest and it's live in chat, the CLI, and MCP together. Explore the extension architecture →

Own your data

Your data in your account. Every send, exactly once.

The git archive · optional

Your mail lives in a database and object store in your own account. Turn on the optional archiver and every message is also projected to an append-only file in a git repo — grep, diff, blame, and back up your whole mailbox, or let an agent read history with just rg. A durable, portable mirror; the live database stays the source of truth.

The send ledger

Every send — a single receipt or a 4,000-recipient newsletter — is written to an idempotency ledger before dispatch, one row per recipient, unique by construction. A queue can retry and a merge can fire twice; every recipient still gets exactly one copy.

Your email infra

The whole engine, in your account.

1
Bundled worker
FTS5
Search your own mail
tRPC
One typed API
1×
Exactly-once sends

What's in the box

  • One bundled worker: fetch, email, queue, and scheduled
  • D1, R2, and Queues — database, object store, and fan-out on your account
  • FTS5 full-text search over your own mail
  • A typed tRPC API shared by the inbox SPA, the CLI, and MCP
  • better-auth with passkeys and an OIDC IdP
  • An /mcp endpoint over OAuth — point Claude or any client at it
  • Transactional + bulk sending on one auditable, exactly-once ledger
  • One authorize() gate, capability tokens, human-in-the-loop

See the full architecture, primitive by primitive →

The last email tool you'll buy.

One deploy on your own Cloudflare account. One stack — inbox, sending, lists — yours, forever. Three subscriptions gone.

Or read the docs. Questions? Talk to us.