# Triage Inbox

> An inbox an agent has already sorted. Needs you lists replies and decisions by deadline, with a one-line note when an agent has something ready (a draft, proposed times). Everything agents did on their own folds into one quiet row you can review or undo. Hover actions, multi-select, j/k/e/h/s/u/z keys, and inboxToMarkdown hands the inbox to a model.

- Slug: `triage-inbox`
- Category: [Email](https://www.assembli.design/category/email.md)
- Type: component
- Tags: inbox, email, triage, agents, keyboard-shortcuts, undo, list
- npm dependencies: lucide-react, motion
- shadcn/ui dependencies: button, kbd, @assembli/bulk-action-bar, @assembli/classic-checkbox, @assembli/empty-state, @assembli/tooltip, @assembli/undo-toast
- Live preview: https://www.assembli.design/preview/triage-inbox
- Page: https://www.assembli.design/components/triage-inbox

![Triage Inbox preview](https://www.assembli.design/thumbnails/triage-inbox-light.png)

## Props

Other props pass through to the root element.

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `items` (required) | `TriageItem[]` |  |  |
| `selectedId` | `string \| null` |  | The open thread. |
| `onSelect` | `(id: string) => void` |  | Click or Enter on a thread (also emitted as an `open` action). |
| `onAction` | `(action: MailAction) => void` |  | Every intent: `open`, `archive`, `snooze`, `star`, `mark_read`, `mark_unread`, `undo`. Apply them with `applyInboxAction`. |
| `agents` | `MailAgent[]` | `DEFAULT_AGENTS` |  |
| `actorName` | `string` | `"Ines Moreau"` | The person acting, for `actor` on emitted actions. |
| `title` | `React.ReactNode` | `"Inbox"` |  |

## Install

One-time setup (needs a subscription):

1. Add the registry to the project's `components.json`: `{"@assembli":{"url":"https://www.assembli.design/r/{name}.json","headers":{"Authorization":"Bearer ${ASSEMBLI_API_KEY}"}}}` (merge into `"registries"`).
2. Put an API key from https://www.assembli.design/account in `.env.local` as `ASSEMBLI_API_KEY=asm_…`.

Then install with the shadcn CLI (writes `components/triage-inbox/triage-inbox.tsx` and installs dependencies):

```bash
npx shadcn@latest add @assembli/triage-inbox
```

Registry item JSON: https://www.assembli.design/r/triage-inbox.json (send `Authorization: Bearer <api key>`)

## Code

> Component source needs an Assembli subscription ($12/month or $96/year) and an API key sent as `Authorization: Bearer <key>`. To get one without copying anything, POST https://www.assembli.design/api/agent/login (or call the MCP tool connect_account), show the user the link it returns, and poll https://www.assembli.design/api/agent/token for the key. Or subscribe at https://www.assembli.design/pricing and create a key at https://www.assembli.design/account.
