Skip to content

Interface: AgentSessionConfigOption ​

Defined in: packages/sdk/src/agents-service.ts:995

Beta

One session-level control the agent advertised at connect — the Agent Client Protocol session/new configOptions list (recon 2026-09-08). It is self-describing and subsumes the older modes / models fields: Cursor advertises a "mode" entry and a "model" entry, Claude a single "mode" entry (its permission mode), and a vendor may add its own.

The write path is generic too: AgentSessionHandle.setConfigOption goes through the protocol's session/set_config_option, so a category Silo has never heard of still works — Claude's "thought_level" (Effort) has no typed method anywhere in the protocol and sets fine. Silo keeps session/set_mode / session/set_model only as a fallback for an agent that does not implement the generic setter.

Render one control per entry and skip an entry whose type you do not recognise — the same tolerance rule AgentSessionUpdate follows for unknown kinds. Do not assume every advertised entry is settable: an adapter may list an id its own handler rejects, so treat a failed AgentSessionHandle.setConfigOption as "stop offering this one".

Properties ​

id ​

ts
readonly id: string;

Defined in: packages/sdk/src/agents-service.ts:997

Beta

Stable id — pass it to AgentSessionHandle.setConfigOption.


name ​

ts
readonly name: string;

Defined in: packages/sdk/src/agents-service.ts:999

Beta

Label for the control, e.g. "Mode", "Model".


description? ​

ts
readonly optional description?: string;

Defined in: packages/sdk/src/agents-service.ts:1001

Beta

A longer explanation, when the agent gave one.


category ​

ts
readonly category: string;

Defined in: packages/sdk/src/agents-service.ts:1007

Beta

The protocol category that decides how a write is delivered — "mode", "model", or a vendor's own. AgentSessionHandle.setConfigOption rejects a category with no verified writer.


type ​

ts
readonly type: string;

Defined in: packages/sdk/src/agents-service.ts:1012

Beta

The control shape. Only "select" is modelled today; treat any other value as "do not render".


currentValue ​

ts
readonly currentValue: string;

Defined in: packages/sdk/src/agents-service.ts:1019

Beta

The currently-selected AgentSessionConfigChoice.value. Kept current when the agent moves it itself (an ACP current_mode_update), so a bound control always reflects reality — subscribe with AgentSessionHandle.onConfigOptionsChanged.


options ​

ts
readonly options: readonly AgentSessionConfigChoice[];

Defined in: packages/sdk/src/agents-service.ts:1021

Beta

The choices, in the agent's order.