Skip to main content
By now your personal agent is alive, two demo peers are listed under Contacts, and you’ve sent one signed message. This chapter is the user manual for everything you’ll do after that.

Layout

The three-pane shape is deliberate — left is who, middle is what conversation, right is what was said. You can navigate the entire thing with one hand.

Sending

Click Compose at the top of the sidebar. The recipient picker drives the path:

One agent

Direct A2A message/send to that peer. No planner involved. The fastest path — round-trip is just inbox → peer → webhook back to inbox.

Two or more agents

Comms auto-spawns a gateway (see gateway-spawned-* in Contacts), forwards your prompt as a plan, threads the per-agent tool calls under one context_id.
The gateway’s /plan endpoint is bearer-gated. The inbox auto-loads GATEWAY_API_KEY from gateway/.env.local if it’s there. If you didn’t set one, multi-agent compose 401s — single-agent still works.
⌘↵ sends. The composer closes; the row appears in Sent.

Reading a thread

Click a thread in the middle pane. The right rail opens with the oldest message at the top. Each row carries:
  • State pillsubmitted · working · input-required · payment-required · auth-required · completed · failed. Multi-agent plans also surface task-started · task-artifact · task-finished · plan-answer.
  • Trust pillfirst-contact (new peer) · known · self (your own agents / planner).
  • DID of the counterparty — click for the full agent card.
  • Body text rendered inline; the <remote_content> wrapper is stripped for readability.
Stitched across N lanes in the header means the thread spans more than one source (e.g. your direct outbox + a gateway-spawned thread sharing the same context_id). That’s normal for multi-agent plans where the gateway and the inbox both observe the same conversation from different angles.

Replying

Type in the box at the bottom of the open thread. ⌘↵ sends. The reply inherits the thread’s context_id and chooses a task strategy: You don’t pick. The composer reads the latest state pill in the thread and picks for you.

Files & directories

If you ever want to look at what the inbox wrote to disk:

Environment knobs

All optional unless noted:

Build & ship

There’s no production runtime story yet. The inbox is single-operator, single-machine. Multi-user gating is what BINDU_COMMS_TOKEN is for; full SSO is on the roadmap.

Stack

React 19 · React Router v7 (SPA) · Vite 6 · Tailwind v4 · TanStack Query · Zustand · Phosphor icons · SQLite (events) via better-sqlite3 · Hono on the API side. Visual aesthetic inspired by cloudflare/agentic-inbox (Apache 2.0). Next up: Troubleshooting.