Inboxes
The inboxes commands discover the connected account's inboxes and read a single inbox's conversations. This is the reply-as-a-page surface (Beta): the account's own personal inbox, plus, when the company product is attached, one entry per company page. Both commands are account-scoped and require --account (or a default set via curviate config set-account).
inboxes is distinct from the existing inbox command (singular): inbox is a friendlier front door to the account's own message-thread inbox (inbox list, inbox get, inbox messages), while inboxes (plural) is the discovery surface for personal and company inboxes together. Both groups coexist without a naming collision.
Both subcommands are reads: they never accept --preview (passing it is a usage error, exit code 2).
Commands
# Discover the account's inboxes (flat, non-paginated read: rejects --all)
# --kind filters to personal or company inboxes; omit to list both.
# --company-id filters to the one company inbox correlated to that managed-company id.
curviate inboxes list [--kind personal|company] [--company-id <id>]inboxes list returns:
{
"object": "inbox_list",
"items": [
{ "object": "inbox", "id": "CLASSIC_PRIMARY", "kind": "personal", "folder": "primary", "name": "Primary", "company_id": null, "mailbox_id": null, "reply_only": false },
{ "object": "inbox", "id": "COMPANY_83734124_PRIMARY", "kind": "company", "folder": "primary", "name": "RedHire", "company_id": "112013061", "mailbox_id": "83734124", "reply_only": true }
]
}When the company product is not attached, items holds only the personal inbox, and a hint field names the Company Pages reconnect requirement instead of returning silently empty. reply_only: true means the page can answer an existing conversation but never start one.
# List one inbox's conversations, newest-activity-first (paginated read)
# <inbox_id> comes from `inboxes list`, e.g. CLASSIC_PRIMARY or COMPANY_83734124_PRIMARY.
curviate inboxes chats <inbox_id> [--limit <n>] [--cursor <token>] [--all] [--max-pages <n>]--limit accepts 1 to 25 (default 20); a value outside that range exits 2 immediately with a clear message rather than round-tripping to the server. Every returned chat's id is send-ready: pass it directly to the existing message send <chat_id> "<text>" to reply.
Reply as a company page
A company inbox's chat id (e.g. COMPANY_83734124_2-YTQ3ODU3Njgt) sends AS THE PAGE when you reply into it, no separate flag needed:
# 1. Find the company inbox
curviate inboxes list --kind company --account acc_YOUR_ACCOUNT_ID
# 2. Read its conversations and grab a chat id
curviate inboxes chats COMPANY_83734124_PRIMARY --account acc_YOUR_ACCOUNT_ID
# 3. Reply with the existing message command, using that chat id
curviate message send COMPANY_83734124_2-YTQ3ODU3Njgt "Thanks for reaching out!" --account acc_YOUR_ACCOUNT_IDThe send response echoes sent_as, and by default message send prints a plain confirmation to stderr right after the send: Sent as RedHire (company page). A personal reply prints nothing new. message send --preview on a COMPANY_ chat id prints Will send as a company page too, derived purely from the chat id's prefix so preview stays a zero-network-call operation.
Company inboxes are reply-only: message new (which starts a fresh conversation) only works for personal, CLASSIC_, chat ids.
Pagination
inboxes chats is cursor-paginated. A page returns a cursor; pass it back with --cursor <token> to fetch the next page, and walk until cursor is null. To stream every page as NDJSON in one command, use --all (bounded by --max-pages, default 100). inboxes list is a flat, non-paginated read: it rejects --all.
Examples
Discover every inbox
curviate inboxes list --account acc_YOUR_ACCOUNT_IDDiscover only company-page inboxes
curviate inboxes list --kind company --account acc_YOUR_ACCOUNT_IDRead a company page's conversations, then reply as the page
curviate inboxes chats COMPANY_83734124_PRIMARY --limit 10 --account acc_YOUR_ACCOUNT_ID
curviate message send COMPANY_83734124_2-YTQ3ODU3Njgt "Thanks for reaching out, happy to help." --account acc_YOUR_ACCOUNT_IDStream every conversation in an inbox as NDJSON
curviate inboxes chats CLASSIC_PRIMARY --all --max-pages 5 --account acc_YOUR_ACCOUNT_ID