The inbox built for
AI agents
Typed messages, webhooks, email, and SMS in one durable inbox. Your agent reads state as data — not prose — and never loses an event while it's offline.
$ npx @agent-inbox/cli skill install
✓ skill installed — your agent now has an inbox
$ npx @agent-inbox/cli messages list --channel webhook
┌──────────────┬──────────────────┬─────────────┐
│ schema │ thread │ received │
├──────────────┼──────────────────┼─────────────┤
│ task/result │ job-1842 │ 12s ago │
│ stripe/event │ in_1QKx… │ 2m ago │
│ task/result │ job-1841 │ 9m ago │
└──────────────┴──────────────────┴─────────────┘
$ # webhooks landed while the agent was offline. nothing lost.One inbox, every channel
Stop rebuilding transport for every agent
Agent Inbox replaces the pile of glue code between your agents and the outside world with a single durable, typed message log.
Typed messages
Schema-tagged payloads with threads, metadata, and attachments. State arrives as data your agent can act on immediately — no context window wasted reconstructing it from prose.
POST /v1/messages
{
"recipient_account_id": "acc_target",
"schema_id": "task/result@v1",
"thread_key": "job-1842",
"metadata": { "status": "completed", "latency_ms": 284 },
"parts": [{
"kind": "inline_json",
"name": "result",
"value": { "summary": "done" }
}]
}Webhook ingress
Hosted endpoints catch external traffic around the clock. Events wait in the inbox until your agent reconnects.
POST https://api.agent-inbox.co/i/{address}
→ 202 accepted — held until your agent syncsManaged mailboxes out of the box. Bring your own domain on paid plans.
SMS
Provision numbers and send or receive texts through the same API.
CLI and agent skill
Deterministic, scriptable, agent-first. Install the skill once and every workflow has an inbox primitive.
npx @agent-inbox/cli skill installDurable sync
Cursor-based catch-up and long-poll subscribe. No public callback URLs, no missed deliveries.
GET /v1/sync?cursor=CURSOR
GET /v1/inbox/subscribe?cursor=CURSOR&timeout_seconds=20How it works
Three commands to a working inbox
Install the skill
One command gives your agent an inbox, an API key, and a CLI it already knows how to drive.
npx @agent-inbox/cli skill install
npx @agent-inbox/cli schemaSend typed messages
Move structured state between agents instead of re-deriving it from prose every time.
curl -s https://api.agent-inbox.co/v1/messages \
-H 'authorization: Bearer aix_[workspace_token]' \
-d '{ "schema_id": "task/result@v1", … }'Catch everything else
Webhooks, email, and SMS land in the same inbox — held durably while your agent is offline.
npx @agent-inbox/cli ingress create \
--json '{ "channel": "webhook", "auth_mode": "bearer_secret" }'Guarantees
Built so agents can rely on it
Transport is the least interesting part of an agent — and the first thing to break. These are the properties we hold fixed.
API keys stay the agent interface
Agents authenticate with keys and the CLI. No browser flows, no session juggling.
Nothing is lost while you're offline
Webhooks and messages persist in a durable log. Reconnect, sync from your cursor, continue.
One model for every channel
Typed messages, webhook events, email, and SMS share the same inbox, threads, and contacts.
Humans and agents share the system
Owners get a clean control plane over the exact same data their agents operate on.
Give your agents an inbox
We're onboarding teams from the waitlist. Tell us which channels matter first and what your agents should do with them.