Chat or Agent), model, model provider, optional name, sidebar visibility, and turn history.
Workspace Methods
| Method | Params | Result | Purpose |
|---|---|---|---|
workspace/list | WorkspaceListParams | WorkspaceListResponse | Return known workspaces. |
workspace/default | WorkspaceDefaultParams | WorkspaceDefaultResponse | Return or create the default workspace. |
workspace/create | WorkspaceCreateParams | WorkspaceCreateResponse | Create a workspace by caller-provided workspace_id. |
workspace/select | WorkspaceSelectParams | WorkspaceSelectResponse | Select a workspace for the current connection and optionally make it current. |
workspace/update | WorkspaceUpdateParams | WorkspaceUpdateResponse | Update workspace metadata such as the display name. |
Workspace Shape
| Field | Meaning |
|---|---|
id | Stable workspace id. |
name | Display name. |
is_active | Whether the workspace can be selected. |
is_current | Whether the workspace is the persisted current workspace for the gateway. |
created_at, updated_at | Unix timestamps. |
Listing Workspaces
workspace/default
Use this when a client needs a workspace id and wants the gateway to ensure the default workspace exists.
Creating A Workspace
The client generates theworkspace_id. name is optional; if omitted, the gateway assigns a default display name. Set make_current when the new workspace should become the persisted current workspace.
Selecting A Workspace
workspace/select associates the current WebSocket connection with a workspace. Set make_current when the selection should also be persisted as the gateway’s current workspace.
Updating A Workspace
Useworkspace/update to rename a workspace.
Workspace Notifications
The gateway sendsworkspace/changed when a workspace is created, updated, or when the current workspace changes. The notification payload has kind (created, updated, or current_changed) and workspace.
Thread Methods
| Method | Params | Result | Purpose |
|---|---|---|---|
thread/start | ThreadStartParams | ThreadStartResponse | Create a thread and subscribe the current connection to it. |
thread/get | ThreadGetParams | ThreadGetResponse | Load one thread. |
thread/tree | ThreadTreeParams | ThreadTreeResponse | Load workspace threads, folders, and placements. |
thread/history | ThreadHistoryParams | ThreadHistoryResponse | Replay durable history events for a thread. |
thread/move | ThreadMoveParams | ThreadMoveResponse | Move a thread into or out of a folder. |
thread/folder/create | ThreadFolderCreateParams | ThreadFolderCreateResponse | Create a folder. |
thread/folder/move | ThreadFolderMoveParams | ThreadFolderMoveResponse | Move a folder under another folder or to root. |
thread/folder/delete | ThreadFolderDeleteParams | ThreadFolderDeleteResponse | Delete a folder. |
thread/unsubscribe | ThreadUnsubscribeParams | ThreadUnsubscribeResponse | Stop sending thread-scoped notifications to this connection. |
Starting A Thread
| Field | Notes |
|---|---|
thread_id | Client-provided id. |
workspace_id | Workspace that owns the thread. |
mode | Chat disables tools; Agent enables the agent loop and tool orchestration. |
sandbox | Currently FullAccess only. Tool runs are not separately sandboxed yet. |
origin_kind | user, task_run, or system. Task subagents use hidden task-run threads. |
sidebar_visibility | visible or hidden. Hidden is used for internal/task threads. |
agent_nickname, agent_role | Optional labels for task/subagent threads. |
Thread Tree
thread/tree returns all threads plus folders and placement rows for a workspace. Clients should use this instead of trying to infer sidebar layout from thread rows alone.
Thread History
thread/history returns durable events, not only final messages. It is the replay API for rebuilding a timeline after reconnect.
Thread Notifications
| Event | Params | Meaning |
|---|---|---|
thread/started | ThreadStartedNotification | A thread was created and started. |
thread/updated | ThreadUpdatedNotification | Thread metadata or status changed. |
thread/closed | ThreadClosedNotification | Thread was closed/unloaded for this client context. |
thread/tree/changed | ThreadTreeChangedNotification | Thread/folder/sidebar tree should be reloaded. |
thread/unsubscribe removes the thread subscription for that connection.