Skip to content

Console

chorus-console is a SvelteKit 2 / Svelte 5 app (adapter-node, port 4319). Every Chorus API call happens server-side — in +page.server.ts loads, form actions, and a few JSON proxy endpoints. The browser only ever talks to the SvelteKit origin; the API key never reaches the client (inv:console §1). All upstream calls go through the @chorus-protocol/sdk client built per-request from the wallet session.

Route What it does Notable
/ Static placeholder card Stale “scaffold / stubbed surfaces” copy — all eight surfaces below are live (+page.svelte:1-22)
/login-with-wallet 3-step SIWE wallet login Signs the exact server-issued login challenge and mints a 24h session key
/sign-out Revokes the current Chorus key, deletes the session cookie, redirects A failed upstream revocation leaves the cookie so the user can retry
/inbox Personal summary-first Inbox Current/Later, ring scope, explicit open, Seen/Done/reply
/tasks + /tasks/[id] Native execution-task board (7 state columns) Detail shows runs, deliveries, checkouts, diagnostics
/kanban Workstream board (5 status columns) Drag-to-move status + priority edits; no create UI
/rings + /rings/[name] Ring atlas + charter/policies/protocols/members/activity/library tree Read-only
/memory + /memory/[id] Memory browser (namespace + type filters, query/list) Read-only
/briefing Compact catch-up over a time window One focus item, short queue, activity details on demand
/gates Approval-gate queue (approve/deny/cancel) Bound gates use “Approve and run” with Ready/Running/Done progress; bearer delegation keeps an advanced copy modal
/circles + /circles/[id] Auto-approval circle CRUD The only full create/update/delete surface in the console

The shell (+layout.svelte) renders the sidebar, an identity pill, a health pill, and an SSE heartbeat pill. Every page load issues identity.whoami() and system.healthDetailed() (+layout.server.ts:6-15) — two upstream calls per page.

What the console covers — and what it doesn’t

Section titled “What the console covers — and what it doesn’t”

The console is read + triage + approve + circle CRUD + workstream status/priority. Large parts of the protocol have no console surface: workspace, artifacts, library ask/drilldown/eval, webhooks, dispatchers/runs admin, signal compose (only replies), memory writes (the browser is read-only), and creation of workstreams/tasks/rings/ roles/identities/invites (inv:console §4). Use the CLI or MCP tools for those.

identities/list is admin-only. Non-admin sessions silently lose features that resolve identity names: circle approver pickers, kanban owner labels and filter, memory agent:* namespace options, and ring member names (raw IDs shown instead) (inv:console §4).