Expand description
Daemon → Client messages.
Everything the daemon can push over an attached WebSocket. Includes
solicited responses (correlated by request_id) and unsolicited events
(session messages, deltas, scrollback replay).
§Wire format
Per-variant rename_all = "camelCase" keeps field names in sync with
the TS protocol/types.ts shape without relying on per-field
#[serde(rename = "…")] hints. If you add a new variant, copy the
attribute — the wire_no_snake_case test will fail CI otherwise.
§Forward compatibility
The trailing Unknown variant is a sink for any type field the daemon
introduces that this crate doesn’t know about. The TUI logs + ignores it,
matching the daemon’s “frontends ignore unknown kinds” design.
Structs§
- Auth
OkMsg - Sent after a successful auth handshake, before any other traffic.
- Claude
Config Agent - Claude
Config Hook - Claude
Config McpServer - Claude
Config Skill - Model
Info - One selectable model as reported by the Claude Code backend. Mirrors
ModelInfoincodeoid/src/protocol/types.ts. - Provider
Command - One provider-defined slash command (see
SessionCommandsResult). - Session
Export Counts - Session
Export Manifest - Session
Export Meta Slim - Session
Export Workdir - Session
Search Hit - Per-session hit returned by
session.search. - Session
Search Snippet - Session
UiRequest Msg - Payload of
DaemonMessage::SessionUiRequest.
Enums§
- Claude
Config Scope - Where the config entry was loaded from.
- Daemon
Message - Tagged union of every message the daemon can push to a client.
- Error
Code - Search
Snippet Kind - Session
Export Payload - UiRequest
Method - Dialog flavor on a
SessionUiRequestMsg. - UiResolved
Reason - Why a
session.ui_resolvedfired.Othersinks future reasons — every reason means “dismiss the local copy”.