Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agentclientprotocol.com/llms.txt

Use this file to discover all available pages before exploring further.

Agent

Defines the interface that all ACP-compliant agents must implement. Agents are programs that use generative AI to autonomously modify code. They handle requests from clients and execute tasks using language models and tools.

authenticate

Authenticates the client using the specified authentication method. Called when the agent requires authentication before allowing session creation. The client provides the authentication method ID that was advertised during initialization. After successful authentication, the client can proceed to create sessions with new_session without receiving an auth_required error. See protocol docs: Initialization

AuthenticateRequest

Request parameters for the authenticate method. Specifies which authentication method to use. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
methodId
string
required
The ID of the authentication method to use. Must be one of the methods advertised in the initialize response.

AuthenticateResponse

Response to the authenticate method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

document/didChange

UNSTABLE Notification sent when a file is edited.

DidChangeDocumentNotification

Notification sent when a file is edited. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
The content changes.
sessionId
required
The session ID for this notification.
uri
string
required
The URI of the changed document.
version
int64
required
The new version number of the document.

document/didClose

UNSTABLE Notification sent when a file is closed.

DidCloseDocumentNotification

Notification sent when a file is closed. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this notification.
uri
string
required
The URI of the closed document.

document/didFocus

UNSTABLE Notification sent when a file becomes the active editor tab.

DidFocusDocumentNotification

Notification sent when a file becomes the active editor tab. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
position
required
The current cursor position.
sessionId
required
The session ID for this notification.
uri
string
required
The URI of the focused document.
version
int64
required
The version number of the document.
visibleRange
required
The portion of the file currently visible in the editor viewport.

document/didOpen

UNSTABLE Notification sent when a file is opened in the editor.

DidOpenDocumentNotification

Notification sent when a file is opened in the editor. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
languageId
string
required
The language identifier of the document (e.g., “rust”, “python”).
sessionId
required
The session ID for this notification.
text
string
required
The full text content of the document.
uri
string
required
The URI of the opened document.
version
int64
required
The version number of the document.

document/didSave

UNSTABLE Notification sent when a file is saved.

DidSaveDocumentNotification

Notification sent when a file is saved. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this notification.
uri
string
required
The URI of the saved document.

initialize

Establishes the connection with a client and negotiates protocol capabilities. This method is called once at the beginning of the connection to:
  • Negotiate the protocol version to use
  • Exchange capability information between client and agent
  • Determine available authentication methods
The agent should respond with its supported protocol version and capabilities. See protocol docs: Initialization

InitializeRequest

Request parameters for the initialize method. Sent by the client to establish connection and negotiate capabilities. See protocol docs: Initialization Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
clientCapabilities
Capabilities supported by the client.
  • Default: {"auth":{"terminal":false},"fs":{"readTextFile":false,"writeTextFile":false},"terminal":false}
clientInfo
Information about the Client name and version sent to the Agent.Note: in future versions of the protocol, this will be required.
protocolVersion
The latest protocol version supported by the client.

InitializeResponse

Response to the initialize method. Contains the negotiated protocol version and agent capabilities. See protocol docs: Initialization Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
agentCapabilities
Capabilities supported by the agent.
  • Default: {"auth":{},"loadSession":false,"mcpCapabilities":{"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}
agentInfo
Information about the Agent name and version sent to the Client.Note: in future versions of the protocol, this will be required.
authMethods
Authentication methods supported by the agent.
  • Default: []
protocolVersion
The protocol version the client specified if supported by the agent, or the latest protocol version supported by the agent.The client should disconnect, if it doesn’t support this version.

logout

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Logs out of the current authenticated state. After a successful logout, all new sessions will require authentication. There is no guarantee about the behavior of already running sessions.

LogoutRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for the logout method. Terminates the current authenticated session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

LogoutResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response to the logout method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

nes/accept

UNSTABLE Notification sent when a suggestion is accepted.

AcceptNesNotification

Notification sent when a suggestion is accepted. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
id
string
required
The ID of the accepted suggestion.
sessionId
required
The session ID for this notification.

nes/close

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Closes an active NES session and frees up any resources associated with it. The agent must cancel any ongoing work and then free up any resources associated with the NES session.

CloseNesRequest

Request to close an NES session. The agent must cancel any ongoing work related to the NES session and then free up any resources associated with the session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The ID of the NES session to close.

CloseNesResponse

Response from closing an NES session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

nes/reject

UNSTABLE Notification sent when a suggestion is rejected.

RejectNesNotification

Notification sent when a suggestion is rejected. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
id
string
required
The ID of the rejected suggestion.
reason
The reason for rejection.
sessionId
required
The session ID for this notification.

nes/start

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Starts an NES session.

StartNesRequest

Request to start an NES session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
repository
Repository metadata, if the workspace is a git repository.
workspaceFolders
The workspace folders.
workspaceUri
string | null
The root URI of the workspace.

StartNesResponse

Response to nes/start. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for the newly started NES session.

nes/suggest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Requests a code suggestion.

SuggestNesRequest

Request for a code suggestion. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
context
Context for the suggestion, included based on agent capabilities.
position
required
The current cursor position.
selection
Range | null
The current text selection range, if any.
sessionId
required
The session ID for this request.
triggerKind
What triggered this suggestion request.
uri
string
required
The URI of the document to suggest for.
version
int64
required
The version number of the document.

SuggestNesResponse

Response to nes/suggest. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
suggestions
The list of suggestions.

providers/disable

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Disables a provider.

DisableProvidersRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for providers/disable. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
id
string
required
Provider id to disable.

DisableProvidersResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response to providers/disable. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

providers/list

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Lists providers that can be configured by the client.

ListProvidersRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for providers/list. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

ListProvidersResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response to providers/list. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
providers
Configurable providers with current routing info suitable for UI display.

providers/set

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Replaces the configuration for a provider.

SetProvidersRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for providers/set. Replaces the full configuration for one provider id. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
apiType
required
Protocol type for this provider.
baseUrl
string
required
Base URL for requests sent through this provider.
headers
object
Full headers map for this provider. May include authorization, routing, or other integration-specific headers.
id
string
required
Provider id to configure.

SetProvidersResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response to providers/set. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

session/cancel

Cancels ongoing operations for a session. This is a notification sent by the client to cancel an ongoing prompt turn. Upon receiving this notification, the Agent SHOULD:
  • Stop all language model requests as soon as possible
  • Abort all tool call invocations in progress
  • Send any pending session/update notifications
  • Respond to the original session/prompt request with StopReason::Cancelled
See protocol docs: Cancellation

CancelNotification

Notification to cancel ongoing operations for a session. See protocol docs: Cancellation Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The ID of the session to cancel operations for.

session/close

Closes an active session and frees up any resources associated with it. This method is only available if the agent advertises the sessionCapabilities.close capability. The agent must cancel any ongoing work (as if session/cancel was called) and then free up any resources associated with the session.

CloseSessionRequest

Request parameters for closing an active session. If supported, the agent must cancel any ongoing work related to the session (treat it as if session/cancel was called) and then free up any resources associated with the session. Only available if the Agent supports the sessionCapabilities.close capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The ID of the session to close.

CloseSessionResponse

Response from closing a session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

session/fork

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Forks an existing session to create a new independent session. This method is only available if the agent advertises the session.fork capability. The agent should create a new session with the same conversation context as the original, allowing operations like generating summaries without affecting the original session’s history.

ForkSessionRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for forking an existing session. Creates a new session based on the context of an existing one, allowing operations like generating summaries without affecting the original session’s history. Only available if the Agent supports the session.fork capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Additional workspace roots to activate for this session. Each path must be absolute.When omitted or empty, no additional roots are activated. When non-empty, this is the complete resulting additional-root list for the forked session.
cwd
string
required
The working directory for this session.
mcpServers
List of MCP servers to connect to for this session.
sessionId
required
The ID of the session to fork.

ForkSessionResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response from forking an existing session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
Initial session configuration options if supported by the Agent.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Initial model state if supported by the Agent
Initial mode state if supported by the AgentSee protocol docs: Session Modes
sessionId
required
Unique identifier for the newly created forked session.

session/list

Lists existing sessions known to the agent. This method is only available if the agent advertises the sessionCapabilities.list capability. The agent should return metadata about sessions with optional filtering and pagination support.

ListSessionsRequest

Request parameters for listing existing sessions. Only available if the Agent supports the sessionCapabilities.list capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Filter sessions by the exact ordered additional workspace roots. Each path must be absolute.This filter applies only when the field is present and non-empty. When omitted or empty, no additional-root filter is applied.
cursor
string | null
Opaque cursor token from a previous response’s nextCursor field for cursor-based pagination
cwd
string | null
Filter sessions by working directory. Must be an absolute path.

ListSessionsResponse

Response from listing sessions. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
nextCursor
string | null
Opaque cursor token. If present, pass this in the next request’s cursor parameter to fetch the next page. If absent, there are no more results.
sessions
Array of session information objects

session/load

Loads an existing session to resume a previous conversation. This method is only available if the agent advertises the loadSession capability. The agent should:
  • Restore the session context and conversation history
  • Connect to the specified MCP servers
  • Stream the entire conversation history back to the client via notifications
See protocol docs: Loading Sessions

LoadSessionRequest

Request parameters for loading an existing session. Only available if the Agent supports the loadSession capability. See protocol docs: Loading Sessions Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Additional workspace roots to activate for this session. Each path must be absolute.When omitted or empty, no additional roots are activated. When non-empty, this is the complete resulting additional-root list for the loaded session.
cwd
string
required
The working directory for this session.
mcpServers
required
List of MCP servers to connect to for this session.
sessionId
required
The ID of the session to load.

LoadSessionResponse

Response from loading an existing session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
Initial session configuration options if supported by the Agent.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Initial model state if supported by the Agent
Initial mode state if supported by the AgentSee protocol docs: Session Modes

session/new

Creates a new conversation session with the agent. Sessions represent independent conversation contexts with their own history and state. The agent should:
  • Create a new session context
  • Connect to any specified MCP servers
  • Return a unique session ID for future requests
May return an auth_required error if the agent requires authentication. See protocol docs: Session Setup

NewSessionRequest

Request parameters for creating a new session. See protocol docs: Creating a Session Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Additional workspace roots for this session. Each path must be absolute.These expand the session’s filesystem scope without changing cwd, which remains the base for relative paths. When omitted or empty, no additional roots are activated for the new session.
cwd
string
required
The working directory for this session. Must be an absolute path.
mcpServers
required
List of MCP (Model Context Protocol) servers the agent should connect to.

NewSessionResponse

Response from creating a new session. See protocol docs: Creating a Session Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
Initial session configuration options if supported by the Agent.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Initial model state if supported by the Agent
Initial mode state if supported by the AgentSee protocol docs: Session Modes
sessionId
required
Unique identifier for the created session.Used in all subsequent requests for this conversation.

session/prompt

Processes a user prompt within a session. This method handles the whole lifecycle of a prompt:
  • Receives user messages with optional context (files, images, etc.)
  • Processes the prompt using language models
  • Reports language model content and tool calls to the Clients
  • Requests permission to run tools
  • Executes any requested tool calls
  • Returns when the turn is complete with a stop reason
See protocol docs: Prompt Turn

PromptRequest

Request parameters for sending a user prompt to the agent. Contains the user’s message and any additional context. See protocol docs: User Message Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
messageId
string | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A client-generated unique identifier for this user message.If provided, the Agent SHOULD echo this value as userMessageId in the PromptResponse to confirm it was recorded. Both clients and agents MUST use UUID format for message IDs.
prompt
The blocks of content that compose the user’s message.As a baseline, the Agent MUST support ContentBlock::Text and ContentBlock::ResourceLink, while other variants are optionally enabled via PromptCapabilities.The Client MUST adapt its interface according to PromptCapabilities.The client MAY include referenced pieces of context as either ContentBlock::Resource or ContentBlock::ResourceLink.When available, ContentBlock::Resource is preferred as it avoids extra round-trips and allows the message to include pieces of context from sources the agent may not have access to.
sessionId
required
The ID of the session to send this user message to

PromptResponse

Response from processing a user prompt. See protocol docs: Check for Completion Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
stopReason
required
Indicates why the agent stopped processing the turn.
usage
Usage | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Token usage for this turn (optional).
userMessageId
string | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.The acknowledged user message ID.If the client provided a messageId in the PromptRequest, the agent echoes it here to confirm it was recorded. If the client did not provide one, the agent MAY assign one and return it here. Absence of this field indicates the agent did not record a message ID.

session/resume

Resumes an existing session without returning previous messages. This method is only available if the agent advertises the sessionCapabilities.resume capability. The agent should resume the session context, allowing the conversation to continue without replaying the message history (unlike session/load).

ResumeSessionRequest

Request parameters for resuming an existing session. Resumes an existing session without returning previous messages (unlike session/load). This is useful for agents that can resume sessions but don’t implement full session loading. Only available if the Agent supports the sessionCapabilities.resume capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Additional workspace roots to activate for this session. Each path must be absolute.When omitted or empty, no additional roots are activated. When non-empty, this is the complete resulting additional-root list for the resumed session.
cwd
string
required
The working directory for this session.
mcpServers
List of MCP servers to connect to for this session.
sessionId
required
The ID of the session to resume.

ResumeSessionResponse

Response from resuming an existing session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
Initial session configuration options if supported by the Agent.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Initial model state if supported by the Agent
Initial mode state if supported by the AgentSee protocol docs: Session Modes

session/set_config_option

Sets the current value for a session configuration option.

SetSessionConfigOptionRequest

Request parameters for setting a session configuration option. Type: Union Shared properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configId
The ID of the configuration option to set.
sessionId
required
The ID of the session to set the configuration option for.
Variants:
boolean
object
A boolean value (type: "boolean").
value_id
object
A SessionConfigValueId string value.This is the default when type is absent on the wire. Unknown type values with string payloads also gracefully deserialize into this variant.

SetSessionConfigOptionResponse

Response to session/set_config_option method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
The full set of configuration options and their current values.

session/set_mode

Sets the current mode for a session. Allows switching between different agent modes (e.g., “ask”, “architect”, “code”) that affect system prompts, tool availability, and permission behaviors. The mode must be one of the modes advertised in availableModes during session creation or loading. Agents may also change modes autonomously and notify the client via current_mode_update notifications. This method can be called at any time during a session, whether the Agent is idle or actively generating a response. See protocol docs: Session Modes

SetSessionModeRequest

Request parameters for setting a session mode. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
modeId
The ID of the mode to set.
sessionId
required
The ID of the session to set the mode for.

SetSessionModeResponse

Response to session/set_mode method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

session/set_model

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Select a model for a given session.

SetSessionModelRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters for setting a session model. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
modelId
required
The ID of the model to set.
sessionId
required
The ID of the session to set the model for.

SetSessionModelResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response to session/set_model method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

Client

Defines the interface that ACP-compliant clients must implement. Clients are typically code editors (IDEs, text editors) that provide the interface between users and AI agents. They manage the environment, handle user interactions, and control access to resources.

elicitation/complete

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification that a URL-based elicitation has completed.

CompleteElicitationNotification

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification sent by the agent when a URL-based elicitation is complete. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
elicitationId
The ID of the elicitation that completed.

elicitation/create

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Requests structured user input via a form or URL.

CreateElicitationRequest

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request from the agent to elicit structured user input. The agent sends this to the client to request information from the user, either via a form or by directing them to a URL. Elicitations are tied to a session (optionally a tool call) or a request. Type: Union Shared properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
message
string
required
A human-readable message describing what input is needed.
Variants:
form
object
Form-based elicitation where the client renders a form from the provided schema.
url
object
URL-based elicitation where the client directs the user to a URL.

CreateElicitationResponse

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response from the client to an elicitation request. Type: Union Shared properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Variants:
accept
object
The user accepted and provided content.
decline
object
The user declined the elicitation.
cancel
object
The elicitation was cancelled.

fs/read_text_file

Reads content from a text file in the client’s file system. Only available if the client advertises the fs.readTextFile capability. Allows the agent to access file contents within the client’s environment. See protocol docs: Client

ReadTextFileRequest

Request to read content from a text file. Only available if the client supports the fs.readTextFile capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
limit
integer | null
Maximum number of lines to read.
  • Minimum: 0
line
integer | null
Line number to start reading from (1-based).
  • Minimum: 0
path
string
required
Absolute path to the file to read.
sessionId
required
The session ID for this request.

ReadTextFileResponse

Response containing the contents of a text file. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
string
required

fs/write_text_file

Writes content to a text file in the client’s file system. Only available if the client advertises the fs.writeTextFile capability. Allows the agent to create or modify files within the client’s environment. See protocol docs: Client

WriteTextFileRequest

Request to write content to a text file. Only available if the client supports the fs.writeTextFile capability. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
string
required
The text content to write to the file.
path
string
required
Absolute path to the file to write.
sessionId
required
The session ID for this request.

WriteTextFileResponse

Response to fs/write_text_file Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

session/request_permission

Requests permission from the user for a tool call operation. Called by the agent when it needs user authorization before executing a potentially sensitive operation. The client should present the options to the user and return their decision. If the client cancels the prompt turn via session/cancel, it MUST respond to this request with RequestPermissionOutcome::Cancelled. See protocol docs: Requesting Permission

RequestPermissionRequest

Request for user permission to execute a tool call. Sent when the agent needs authorization before performing a sensitive operation. See protocol docs: Requesting Permission Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
options
Available permission options for the user to choose from.
sessionId
required
The session ID for this request.
toolCall
Details about the tool call requiring permission.

RequestPermissionResponse

Response to a permission request. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
The user’s decision on the permission request.

session/update

Handles session update notifications from the agent. This is a notification endpoint (no response expected) that receives real-time updates about session progress, including message chunks, tool calls, and execution plans. Note: Clients SHOULD continue accepting tool call updates even after sending a session/cancel notification, as the agent may send final updates before responding with the cancelled stop reason. See protocol docs: Agent Reports Output

SessionNotification

Notification containing a session update from the agent. Used to stream real-time progress and results during prompt processing. See protocol docs: Agent Reports Output Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The ID of the session this update pertains to.
update
The actual update content.

terminal/create

Executes a command in a new terminal Only available if the terminal Client capability is set to true. Returns a TerminalId that can be used with other terminal methods to get the current output, wait for exit, and kill the command. The TerminalId can also be used to embed the terminal in a tool call by using the ToolCallContent::Terminal variant. The Agent is responsible for releasing the terminal by using the terminal/release method. See protocol docs: Terminals

CreateTerminalRequest

Request to create a new terminal and execute a command. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
args
"string"[]
Array of command arguments.
command
string
required
The command to execute.
cwd
string | null
Working directory for the command (absolute path).
Environment variables for the command.
outputByteLimit
integer | null
Maximum number of output bytes to retain.When the limit is exceeded, the Client truncates from the beginning of the output to stay within the limit.The Client MUST ensure truncation happens at a character boundary to maintain valid string output, even if this means the retained output is slightly less than the specified limit.
  • Minimum: 0
sessionId
required
The session ID for this request.

CreateTerminalResponse

Response containing the ID of the created terminal. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
terminalId
string
required
The unique identifier for the created terminal.

terminal/kill

Kills the terminal command without releasing the terminal While terminal/release will also kill the command, this method will keep the TerminalId valid so it can be used with other methods. This method can be helpful when implementing command timeouts which terminate the command as soon as elapsed, and then get the final output so it can be sent to the model. Note: Call terminal/release when TerminalId is no longer needed. See protocol docs: Terminals

KillTerminalRequest

Request to kill a terminal without releasing it. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this request.
terminalId
string
required
The ID of the terminal to kill.

KillTerminalResponse

Response to terminal/kill method Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

terminal/output

Gets the terminal output and exit status Returns the current content in the terminal without waiting for the command to exit. If the command has already exited, the exit status is included. See protocol docs: Terminals

TerminalOutputRequest

Request to get the current output and status of a terminal. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this request.
terminalId
string
required
The ID of the terminal to get output from.

TerminalOutputResponse

Response containing the terminal output and exit status. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
exitStatus
Exit status if the command has completed.
output
string
required
The terminal output captured so far.
truncated
boolean
required
Whether the output was truncated due to byte limits.

terminal/release

Releases a terminal The command is killed if it hasn’t exited yet. Use terminal/wait_for_exit to wait for the command to exit before releasing the terminal. After release, the TerminalId can no longer be used with other terminal/* methods, but tool calls that already contain it, continue to display its output. The terminal/kill method can be used to terminate the command without releasing the terminal, allowing the Agent to call terminal/output and other methods. See protocol docs: Terminals

ReleaseTerminalRequest

Request to release a terminal and free its resources. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this request.
terminalId
string
required
The ID of the terminal to release.

ReleaseTerminalResponse

Response to terminal/release method Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

terminal/wait_for_exit

Waits for the terminal command to exit and return its exit status See protocol docs: Terminals

WaitForTerminalExitRequest

Request to wait for a terminal command to exit. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
sessionId
required
The session ID for this request.
terminalId
string
required
The ID of the terminal to wait for.

WaitForTerminalExitResponse

Response containing the exit status of a terminal command. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
exitCode
integer | null
The process exit code (may be null if terminated by signal).
  • Minimum: 0
signal
string | null
The signal that terminated the process (may be null if exited normally).

Protocol Level

Defines the interface that ACP-compliant agents and clients must both implement. Notifications whose methods start with ‘/aremessageswhichareprotocolimplementationdependentandmightnotbeimplementableinallclientsoragents.Forexampleiftheimplementationusesasinglethreadedsynchronousprogramminglanguagethenthereislittleitcandotoreacttoa/' are messages which are protocol implementation dependent and might not be implementable in all clients or agents. For example if the implementation uses a single threaded synchronous programming language then there is little it can do to react to a `/cancel_request` notification. If an agent or client receives notifications starting with ’$/’ it is free to ignore the notification.

$/cancel_request

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Cancels an ongoing request. This is a notification sent by the side that sent a request to cancel that request. Upon receiving this notification, the receiver:
  1. MUST cancel the corresponding request activity and all nested activities
  2. MAY send any pending notifications.
  3. MUST send one of these responses for the original request:
  • Valid response with appropriate data (partial results or cancellation marker)
  • Error response with code -32800 (Cancelled)
See protocol docs: Cancellation

CancelRequestNotification

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification to cancel an ongoing request. See protocol docs: Cancellation Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
requestId
required
The ID of the request to cancel.

AgentAuthCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Authentication-related capabilities supported by the agent. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Whether the agent supports the logout method.By supplying \{\} it means that the agent supports the logout method.

AgentCapabilities

Capabilities supported by the agent. Advertised during initialization to inform the client about available features and content types. See protocol docs: Agent Capabilities Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Authentication-related capabilities supported by the agent.
  • Default: {}
loadSession
boolean
Whether the agent supports session/load.
  • Default: false
mcpCapabilities
MCP capabilities supported by the agent.
  • Default: {"http":false,"sse":false}
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.NES (Next Edit Suggestions) capabilities supported by the agent.
positionEncoding
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.The position encoding selected by the agent from the client’s supported encodings.
promptCapabilities
Prompt capabilities supported by the agent.
  • Default: {"audio":false,"embeddedContext":false,"image":false}
providers
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Provider configuration capabilities supported by the agent.By supplying \{\} it means that the agent supports provider configuration methods.
sessionCapabilities
  • Default: {}

Annotations

Optional annotations for the client. The client can use annotations to inform how objects are used or displayed Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
audience
Role[] | null
lastModified
string | null
priority
number | null

AudioContent

Audio provided to or from an LLM. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
annotations
data
string
required
mimeType
string
required

AuthCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Authentication capabilities supported by the client. Advertised during initialization to inform the agent which authentication method types the client can handle. This governs opt-in types that require additional client-side support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
terminal
boolean
Whether the client supports terminal authentication methods.When true, the agent may include terminal entries in its authentication methods.
  • Default: false

AuthEnvVar

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Describes a single environment variable for an AuthMethodEnvVar authentication method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
label
string | null
Human-readable label for this variable, displayed in client UI.
name
string
required
The environment variable name (e.g. "OPENAI_API_KEY").
optional
boolean
Whether this variable is optional.Defaults to false.
  • Default: false
secret
boolean
Whether this value is a secret (e.g. API key, token). Clients should use a password-style input for secret vars.Defaults to true.
  • Default: true

AuthMethod

Describes an available authentication method. The type field acts as the discriminator in the serialized JSON form. When no type is present, the method is treated as agent. Type: Union
env_var
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.User provides a key that the client passes to the agent as an environment variable.
terminal
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Client runs an interactive terminal for the user to authenticate via a TUI.
agent
Agent handles authentication itself.This is the default when no type is specified.

AuthMethodAgent

Agent handles authentication itself. This is the default authentication method type. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string | null
Optional description providing more details about this authentication method.
id
string
required
Unique identifier for this authentication method.
name
string
required
Human-readable name of the authentication method.

AuthMethodEnvVar

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Environment variable authentication method. The user provides credentials that the client passes to the agent as environment variables. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string | null
Optional description providing more details about this authentication method.
id
string
required
Unique identifier for this authentication method.
Optional link to a page where the user can obtain their credentials.
name
string
required
Human-readable name of the authentication method.
vars
required
The environment variables the client should set.

AuthMethodTerminal

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Terminal-based authentication method. The client runs an interactive terminal for the user to authenticate via a TUI. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
args
"string"[]
Additional arguments to pass when running the agent binary for terminal auth.
description
string | null
Optional description providing more details about this authentication method.
env
object
Additional environment variables to set when running the agent binary for terminal auth.
id
string
required
Unique identifier for this authentication method.
name
string
required
Human-readable name of the authentication method.

AvailableCommand

Information about a command. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string
required
Human-readable description of what the command does.
Input for the command if required
name
string
required
Command name (e.g., create_plan, research_codebase).

AvailableCommandInput

The input specification for a command. All text that was typed after the command name is provided as input. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
hint
string
required
A hint to display when the input hasn’t been provided yet

AvailableCommandsUpdate

Available commands are ready or have changed Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
availableCommands
Commands the agent can execute

BlobResourceContents

Binary resource contents. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
blob
string
required
mimeType
string | null
uri
string
required

BooleanPropertySchema

Schema for boolean properties in an elicitation form. Type: Object Properties:
default
boolean | null
Default value.
description
string | null
Human-readable description.
title
string | null
Optional title for the property.

ClientCapabilities

Capabilities supported by the client. Advertised during initialization to inform the agent about available features and methods. See protocol docs: Client Capabilities Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Authentication capabilities supported by the client. Determines which authentication method types the agent may include in its InitializeResponse.
  • Default: {"terminal":false}
elicitation
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Elicitation capabilities supported by the client. Determines which elicitation modes the agent may use.
File system capabilities supported by the client. Determines which file operations the agent can request.
  • Default: {"readTextFile":false,"writeTextFile":false}
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.NES (Next Edit Suggestions) capabilities supported by the client.
positionEncodings
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.The position encodings supported by the client, in order of preference.
terminal
boolean
Whether the Client support all terminal/* methods.
  • Default: false

ClientNesCapabilities

NES capabilities advertised by the client during initialization. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Whether the client supports the jump suggestion kind.
Whether the client supports the rename suggestion kind.
searchAndReplace
Whether the client supports the searchAndReplace suggestion kind.

ConfigOptionUpdate

Session configuration options have been updated. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
configOptions
The full set of configuration options and their current values.

Content

Standard content block (text, images, resources). Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
required
The actual content block.

ContentBlock

Content blocks represent displayable information in the Agent Client Protocol. They provide a structured way to handle various types of user-facing content—whether it’s text from language models, images for analysis, or embedded resources for context. Content blocks appear in:
  • User prompts sent via session/prompt
  • Language model output streamed through session/update notifications
  • Progress updates and results from tool calls
This structure is compatible with the Model Context Protocol (MCP), enabling agents to seamlessly forward content from MCP tool outputs without transformation. See protocol docs: Content Type: Union
text
object
Text content. May be plain text or formatted with Markdown.All agents MUST support text content blocks in prompts. Clients SHOULD render this text as Markdown.
image
object
Images for visual context or analysis.Requires the image prompt capability when included in prompts.
audio
object
Audio data for transcription or analysis.Requires the audio prompt capability when included in prompts.
References to resources that the agent can access.All agents MUST support resource links in prompts.
resource
object
Complete resource contents embedded directly in the message.Preferred for including context as it avoids extra round-trips.Requires the embeddedContext prompt capability when included in prompts.

ContentChunk

A streamed item of content Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
required
A single item of content
messageId
string | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A unique identifier for the message this chunk belongs to.All chunks belonging to the same message share the same messageId. A change in messageId indicates a new message has started. Both clients and agents MUST use UUID format for message IDs.

Cost

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Cost information for a session. Type: Object Properties:
amount
number
required
Total cumulative cost for session.
currency
string
required
ISO 4217 currency code (e.g., “USD”, “EUR”).

CurrentModeUpdate

The current mode of the session has changed See protocol docs: Session Modes Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
currentModeId
The ID of the current mode

Diff

A diff representing file modifications. Shows changes to files in a format suitable for display in the client UI. See protocol docs: Content Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
newText
string
required
The new content after modification.
oldText
string | null
The original content (None for new files).
path
string
required
The file path being modified.

ElicitationAcceptAction

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. The user accepted the elicitation and provided content. Type: Object Properties:
content
object | null
The user-provided content, if any, as an object matching the requested schema.

ElicitationCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Elicitation capabilities supported by the client. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Whether the client supports form-based elicitation.
Whether the client supports URL-based elicitation.

ElicitationContentValue

Type: Union

ElicitationFormCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Form-based elicitation capabilities. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

ElicitationFormMode

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Form-based elicitation mode where the client renders a form from the provided schema. Type: Union Shared properties:
requestedSchema
A JSON Schema describing the form fields to present to the user.
Variants:
Session
Tied to a session, optionally to a specific tool call within that session.
Request
Tied to a specific JSON-RPC request outside of a session (e.g., during auth/configuration phases before any session is started).

ElicitationId

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for an elicitation. Type: string

ElicitationPropertySchema

Property schema for elicitation form fields. Each variant corresponds to a JSON Schema "type" value. Single-select enums use the String variant with enum or oneOf set. Multi-select enums use the Array variant. Type: Union
string
object
String property (or single-select enum when enum/oneOf is set).
number
object
Number (floating-point) property.
integer
object
Integer property.
boolean
object
Boolean property.
array
object
Multi-select array property.

ElicitationRequestScope

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request-scoped elicitation, tied to a specific JSON-RPC request outside of a session (e.g., during auth/configuration phases before any session is started). Type: Object Properties:
requestId
required
The request this elicitation is tied to.

ElicitationSchema

Type-safe elicitation schema for requesting structured user input. This represents a JSON Schema object with primitive-typed properties, as required by the elicitation specification. Type: Object Properties:
description
string | null
Optional description of what this schema represents.
properties
object
Property definitions (must be primitive types).
  • Default: {}
required
"string"[] | null
List of required property names.
title
string | null
Optional title for the schema.
Type discriminator. Always "object".
  • Default: "object"

ElicitationSchemaType

Type discriminator for elicitation schemas. Type: Union
object
string
Object schema type.

ElicitationSessionScope

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Session-scoped elicitation, optionally tied to a specific tool call. When tool_call_id is set, the elicitation is tied to a specific tool call. This is useful when an agent receives an elicitation from an MCP server during a tool call and needs to redirect it to the user. Type: Object Properties:
sessionId
required
The session this elicitation is tied to.
toolCallId
ToolCallId | null
Optional tool call within the session.

ElicitationStringType

Items definition for untitled multi-select enum properties. Type: Union
string
string
String schema type.

ElicitationUrlCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. URL-based elicitation capabilities. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

ElicitationUrlMode

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. URL-based elicitation mode where the client directs the user to a URL. Type: Union Shared properties:
elicitationId
The unique identifier for this elicitation.
url
string
required
The URL to direct the user to.
Variants:
Session
Tied to a session, optionally to a specific tool call within that session.
Request
Tied to a specific JSON-RPC request outside of a session (e.g., during auth/configuration phases before any session is started).

EmbeddedResource

The contents of a resource, embedded into a prompt or tool call result. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
annotations

EmbeddedResourceResource

Resource content that can be embedded in a message. Type: Union
TextResourceContents
BlobResourceContents

EnumOption

A titled enum option with a const value and human-readable title. Type: Object Properties:
const
string
required
The constant value for this option.
title
string
required
Human-readable title for this option.

EnvVariable

An environment variable to set when launching an MCP server. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
name
string
required
The name of the environment variable.
value
string
required
The value to set for the environment variable.

Error

JSON-RPC error object. Represents an error that occurred during method execution, following the JSON-RPC 2.0 error object specification with optional additional data. See protocol docs: JSON-RPC Error Object Type: Object Properties:
code
required
A number indicating the error type that occurred. This must be an integer as defined in the JSON-RPC specification.
data
object
Optional primitive or structured value that contains additional information about the error. This may include debugging information or context-specific details.
message
string
required
A string providing a short description of the error. The message should be limited to a concise single sentence.

ErrorCode

Predefined error codes for common JSON-RPC and ACP-specific errors. These codes follow the JSON-RPC 2.0 specification for standard errors and use the reserved range (-32000 to -32099) for protocol-specific errors. Type: Union
-32700
int32
Parse error: Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.
-32600
int32
Invalid request: The JSON sent is not a valid Request object.
-32601
int32
Method not found: The method does not exist or is not available.
-32602
int32
Invalid params: Invalid method parameter(s).
-32603
int32
Internal error: Internal JSON-RPC error. Reserved for implementation-defined server errors.
-32800
int32
Request cancelled: UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Execution of the method was aborted either due to a cancellation request from the caller or because of resource constraints or shutdown.
-32000
int32
Authentication required: Authentication is required before this operation can be performed.
-32002
int32
Resource not found: A given resource, such as a file, was not found.
-32042
int32
URL elicitation required: UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.The agent requires user input via a URL-based elicitation before it can proceed.
Other
int32
Other undefined error code.

ExtNotification

Allows the Agent to send an arbitrary notification that is not part of the ACP spec. Extension notifications provide a way to send one-way messages for custom functionality while maintaining protocol compatibility. See protocol docs: Extensibility

ExtRequest

Allows for sending an arbitrary request that is not part of the ACP spec. Extension methods provide a way to add custom functionality while maintaining protocol compatibility. See protocol docs: Extensibility

ExtResponse

Allows for sending an arbitrary response to an ExtRequest that is not part of the ACP spec. Extension methods provide a way to add custom functionality while maintaining protocol compatibility. See protocol docs: Extensibility

FileSystemCapabilities

File system capabilities that a client may support. See protocol docs: FileSystem Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
readTextFile
boolean
Whether the Client supports fs/read_text_file requests.
  • Default: false
writeTextFile
boolean
Whether the Client supports fs/write_text_file requests.
  • Default: false

HttpHeader

An HTTP header to set when making requests to the MCP server. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
name
string
required
The name of the HTTP header.
value
string
required
The value to set for the HTTP header.

ImageContent

An image provided to or from an LLM. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
annotations
data
string
required
mimeType
string
required
uri
string | null

Implementation

Metadata about the implementation of the client or agent. Describes the name and version of an MCP implementation, with an optional title for UI representation. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
name
string
required
Intended for programmatic or logical use, but can be used as a display name fallback if title isn’t present.
title
string | null
Intended for UI and end-user contexts — optimized to be human-readable and easily understood.If not provided, the name should be used for display.
version
string
required
Version of the implementation. Can be displayed to the user or used for debugging or metrics purposes. (e.g. “1.0.0”).

IntegerPropertySchema

Schema for integer properties in an elicitation form. Type: Object Properties:
default
integer | null
Default value.
description
string | null
Human-readable description.
maximum
integer | null
Maximum value (inclusive).
minimum
integer | null
Minimum value (inclusive).
title
string | null
Optional title for the property.

LlmProtocol

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Well-known API protocol identifiers for LLM providers. Agents and clients MUST handle unknown protocol identifiers gracefully. Protocol names beginning with _ are free for custom use, like other ACP extension methods. Protocol names that do not begin with _ are reserved for the ACP spec. Type: Union
anthropic
string
Anthropic API protocol.
openai
string
OpenAI API protocol.
azure
string
Azure OpenAI API protocol.
vertex
string
Google Vertex AI API protocol.
bedrock
string
AWS Bedrock API protocol.
other
string
Unknown or custom protocol.

LogoutCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Logout capabilities supported by the agent. By supplying \{\} it means that the agent supports the logout method. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

McpCapabilities

MCP capabilities supported by the agent Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
http
boolean
Agent supports McpServer::Http.
  • Default: false
sse
boolean
Agent supports McpServer::Sse.
  • Default: false

McpServer

Configuration for connecting to an MCP (Model Context Protocol) server. MCP servers provide tools and context that the agent can use when processing prompts. See protocol docs: MCP Servers Type: Union
http
object
HTTP transport configurationOnly available when the Agent capabilities indicate mcp_capabilities.http is true.
sse
object
SSE transport configurationOnly available when the Agent capabilities indicate mcp_capabilities.sse is true.
stdio
Stdio transport configurationAll Agents MUST support this transport.

McpServerHttp

HTTP transport configuration for MCP. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
headers
required
HTTP headers to set when making requests to the MCP server.
name
string
required
Human-readable name identifying this MCP server.
url
string
required
URL to the MCP server.

McpServerSse

SSE transport configuration for MCP. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
headers
required
HTTP headers to set when making requests to the MCP server.
name
string
required
Human-readable name identifying this MCP server.
url
string
required
URL to the MCP server.

McpServerStdio

Stdio transport configuration for MCP. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
args
"string"[]
required
Command-line arguments to pass to the MCP server.
command
string
required
Path to the MCP server executable.
env
Environment variables to set when launching the MCP server.
name
string
required
Human-readable name identifying this MCP server.

ModelId

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A unique identifier for a model. Type: string

ModelInfo

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Information about a selectable model. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string | null
Optional description of the model.
modelId
required
Unique identifier for the model.
name
string
required
Human-readable name of the model.

MultiSelectItems

Items for a multi-select (array) property schema. Type: Union
Untitled
Untitled multi-select items with plain string values.
Titled
Titled multi-select items with human-readable labels.

MultiSelectPropertySchema

Schema for multi-select (array) properties in an elicitation form. Type: Object Properties:
default
"string"[] | null
Default selected values.
description
string | null
Human-readable description.
items
The items definition describing allowed values.
maxItems
integer | null
Maximum number of items to select.
  • Minimum: 0
minItems
integer | null
Minimum number of items to select.
  • Minimum: 0
title
string | null
Optional title for the property.

NesCapabilities

NES capabilities advertised by the agent during initialization. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Context the agent wants attached to each suggestion request.
Events the agent wants to receive.

NesContextCapabilities

Context capabilities the agent wants attached to each suggestion request. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Whether the agent wants diagnostics context.
Whether the agent wants edit history context.
Whether the agent wants open files context.
Whether the agent wants recent files context.
Whether the agent wants related snippets context.
Whether the agent wants user actions context.

NesDiagnostic

A diagnostic (error, warning, etc.). Type: Object Properties:
message
string
required
The diagnostic message.
range
required
The range of the diagnostic.
severity
The severity of the diagnostic.
uri
string
required
The URI of the file containing the diagnostic.

NesDiagnosticSeverity

Severity of a diagnostic. Type: Union
error
string
An error.
warning
string
A warning.
information
string
An informational message.
hint
string
A hint.

NesDiagnosticsCapabilities

Capabilities for diagnostics context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesDocumentDidChangeCapabilities

Capabilities for document/didChange events. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
syncKind
The sync kind the agent wants: "full" or "incremental".

NesDocumentDidCloseCapabilities

Marker for document/didClose capability support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesDocumentDidFocusCapabilities

Marker for document/didFocus capability support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesDocumentDidOpenCapabilities

Marker for document/didOpen capability support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesDocumentDidSaveCapabilities

Marker for document/didSave capability support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesDocumentEventCapabilities

Document event capabilities the agent wants to receive. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Whether the agent wants document/didChange events, and the sync kind.
Whether the agent wants document/didClose events.
Whether the agent wants document/didFocus events.
Whether the agent wants document/didOpen events.
Whether the agent wants document/didSave events.

NesEditHistoryCapabilities

Capabilities for edit history context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
maxCount
integer | null
Maximum number of edit history entries the agent can use.
  • Minimum: 0

NesEditHistoryEntry

An entry in the edit history. Type: Object Properties:
diff
string
required
A diff representing the edit.
uri
string
required
The URI of the edited file.

NesEditSuggestion

A text edit suggestion. Type: Object Properties:
cursorPosition
Position | null
Optional suggested cursor position after applying edits.
edits
The text edits to apply.
id
string
required
Unique identifier for accept/reject tracking.
uri
string
required
The URI of the file to edit.

NesEventCapabilities

Event capabilities the agent can consume. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Document event capabilities.

NesExcerpt

A code excerpt from a file. Type: Object Properties:
endLine
uint32
required
The end line of the excerpt (zero-based).
  • Minimum: 0
startLine
uint32
required
The start line of the excerpt (zero-based).
  • Minimum: 0
text
string
required
The text content of the excerpt.

NesJumpCapabilities

Marker for jump suggestion support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesJumpSuggestion

A jump-to-location suggestion. Type: Object Properties:
id
string
required
Unique identifier for accept/reject tracking.
position
required
The target position within the file.
uri
string
required
The file to navigate to.

NesOpenFile

An open file in the editor. Type: Object Properties:
languageId
string
required
The language identifier.
lastFocusedMs
integer | null
Timestamp in milliseconds since epoch of when the file was last focused.
  • Minimum: 0
uri
string
required
The URI of the file.
visibleRange
Range | null
The visible range in the editor, if any.

NesOpenFilesCapabilities

Capabilities for open files context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesRecentFile

A recently accessed file. Type: Object Properties:
languageId
string
required
The language identifier.
text
string
required
The full text content of the file.
uri
string
required
The URI of the file.

NesRecentFilesCapabilities

Capabilities for recent files context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
maxCount
integer | null
Maximum number of recent files the agent can use.
  • Minimum: 0

NesRejectReason

The reason a suggestion was rejected. Type: Union
rejected
string
The user explicitly dismissed the suggestion.
ignored
string
The suggestion was shown but the user continued editing without interacting.
replaced
string
The suggestion was superseded by a newer suggestion.
cancelled
string
The request was cancelled before the agent returned a response.

NesRelatedSnippet

A related code snippet from a file. Type: Object Properties:
excerpts
required
The code excerpts.
uri
string
required
The URI of the file containing the snippets.

NesRelatedSnippetsCapabilities

Capabilities for related snippets context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesRenameCapabilities

Marker for rename suggestion support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesRenameSuggestion

A rename symbol suggestion. Type: Object Properties:
id
string
required
Unique identifier for accept/reject tracking.
newName
string
required
The new name for the symbol.
position
required
The position of the symbol to rename.
uri
string
required
The file URI containing the symbol.

NesRepository

Repository metadata for an NES session. Type: Object Properties:
name
string
required
The repository name.
owner
string
required
The repository owner.
remoteUrl
string
required
The remote URL of the repository.

NesSearchAndReplaceCapabilities

Marker for search and replace suggestion support. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

NesSearchAndReplaceSuggestion

A search-and-replace suggestion. Type: Object Properties:
id
string
required
Unique identifier for accept/reject tracking.
isRegex
boolean | null
Whether search is a regular expression. Defaults to false.
replace
string
required
The replacement text.
The text or pattern to find.
uri
string
required
The file URI to search within.

NesSuggestContext

Context attached to a suggestion request. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
diagnostics
Current diagnostics (errors, warnings).
editHistory
Recent edit history.
openFiles
Currently open files in the editor.
recentFiles
Recently accessed files.
Related code snippets.
userActions
Recent user actions (typing, navigation, etc.).

NesSuggestion

A suggestion returned by the agent. Type: Union
edit
object
A text edit suggestion.
jump
object
A jump-to-location suggestion.
rename
object
A rename symbol suggestion.
searchAndReplace
object
A search-and-replace suggestion.

NesTextEdit

A text edit within a suggestion. Type: Object Properties:
newText
string
required
The replacement text.
range
required
The range to replace.

NesTriggerKind

What triggered the suggestion request. Type: Union
automatic
string
Triggered by user typing or cursor movement.
diagnostic
string
Triggered by a diagnostic appearing at or near the cursor.
manual
string
Triggered by an explicit user action (keyboard shortcut).

NesUserAction

A user action (typing, cursor movement, etc.). Type: Object Properties:
action
string
required
The kind of action (e.g., “insertChar”, “cursorMovement”).
position
required
The position where the action occurred.
timestampMs
uint64
required
Timestamp in milliseconds since epoch.
  • Minimum: 0
uri
string
required
The URI of the file where the action occurred.

NesUserActionsCapabilities

Capabilities for user actions context. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
maxCount
integer | null
Maximum number of user actions the agent can use.
  • Minimum: 0

NumberPropertySchema

Schema for number (floating-point) properties in an elicitation form. Type: Object Properties:
default
number | null
Default value.
description
string | null
Human-readable description.
maximum
number | null
Maximum value (inclusive).
minimum
number | null
Minimum value (inclusive).
title
string | null
Optional title for the property.

PermissionOption

An option presented to the user when requesting permission. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Hint about the nature of this permission option.
name
string
required
Human-readable label to display to the user.
optionId
Unique identifier for this permission option.

PermissionOptionId

Unique identifier for a permission option. Type: string

PermissionOptionKind

The type of permission option being presented to the user. Helps clients choose appropriate icons and UI treatment. Type: Union
allow_once
string
Allow this operation only this time.
allow_always
string
Allow this operation and remember the choice.
reject_once
string
Reject this operation only this time.
reject_always
string
Reject this operation and remember the choice.

Plan

An execution plan for accomplishing complex tasks. Plans consist of multiple entries representing individual tasks or goals. Agents report plans to clients to provide visibility into their execution strategy. Plans can evolve during execution as the agent discovers new requirements or completes tasks. See protocol docs: Agent Plan Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
entries
required
The list of tasks to be accomplished.When updating a plan, the agent must send a complete list of all entries with their current status. The client replaces the entire plan with each update.

PlanEntry

A single entry in the execution plan. Represents a task or goal that the assistant intends to accomplish as part of fulfilling the user’s request. See protocol docs: Plan Entries Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
string
required
Human-readable description of what this task aims to accomplish.
priority
The relative importance of this task. Used to indicate which tasks are most critical to the overall goal.
status
Current execution status of this task.

PlanEntryPriority

Priority levels for plan entries. Used to indicate the relative importance or urgency of different tasks in the execution plan. See protocol docs: Plan Entries Type: Union
high
string
High priority task - critical to the overall goal.
medium
string
Medium priority task - important but not critical.
low
string
Low priority task - nice to have but not essential.

PlanEntryStatus

Status of a plan entry in the execution flow. Tracks the lifecycle of each task from planning through completion. See protocol docs: Plan Entries Type: Union
pending
string
The task has not started yet.
in_progress
string
The task is currently being worked on.
completed
string
The task has been successfully completed.

Position

A zero-based position in a text document. The meaning of character depends on the negotiated position encoding. Type: Object Properties:
character
uint32
required
Zero-based character offset (encoding-dependent).
  • Minimum: 0
line
uint32
required
Zero-based line number.
  • Minimum: 0

PositionEncodingKind

The encoding used for character offsets in positions. Follows the same conventions as LSP 3.17. The default is UTF-16. Type: Union
utf-16
string
Character offsets count UTF-16 code units. This is the default.
utf-32
string
Character offsets count Unicode code points.
utf-8
string
Character offsets count UTF-8 code units (bytes).

PromptCapabilities

Prompt capabilities supported by the agent in session/prompt requests. Baseline agent functionality requires support for ContentBlock::Text and ContentBlock::ResourceLink in prompt requests. Other variants must be explicitly opted in to. Capabilities for different types of content in prompt requests. Indicates which content types beyond the baseline (text and resource links) the agent can process. See protocol docs: Prompt Capabilities Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
audio
boolean
Agent supports ContentBlock::Audio.
  • Default: false
embeddedContext
boolean
Agent supports embedded context in session/prompt requests.When enabled, the Client is allowed to include ContentBlock::Resource in prompt requests for pieces of context that are referenced in the message.
  • Default: false
image
boolean
Agent supports ContentBlock::Image.
  • Default: false

ProtocolVersion

Protocol version identifier. This version is only bumped for breaking changes. Non-breaking changes should be introduced via capabilities. Type: integer (uint16)
ConstraintValue
Minimum0
Maximum65535

ProviderCurrentConfig

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Current effective non-secret routing configuration for a provider. Type: Object Properties:
apiType
required
Protocol currently used by this provider.
baseUrl
string
required
Base URL currently used by this provider.

ProviderInfo

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Information about a configurable LLM provider. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Current effective non-secret routing config. Null or omitted means provider is disabled.
id
string
required
Provider identifier, for example “main” or “openai”.
required
boolean
required
Whether this provider is mandatory and cannot be disabled via providers/disable. If true, clients must not call providers/disable for this id.
supported
Supported protocol types for this provider.

ProvidersCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Provider configuration capabilities supported by the agent. By supplying \{\} it means that the agent supports provider configuration methods. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

Range

A range in a text document, expressed as start and end positions. Type: Object Properties:
end
required
The end position (exclusive).
start
required
The start position (inclusive).

RequestId

JSON RPC Request Id An identifier established by the Client that MUST contain a String, Number, or NULL value if included. If it is not included it is assumed to be a notification. The value SHOULD normally not be Null [1] and Numbers SHOULD NOT contain fractional parts [2] The Server MUST reply with the same value in the Response object if included. This member is used to correlate the context between the two objects. [1] The use of Null as a value for the id member in a Request object is discouraged, because this specification uses a value of Null for Responses with an unknown id. Also, because JSON-RPC 1.0 uses an id value of Null for Notifications this could cause confusion in handling. [2] Fractional parts may be problematic, since many decimal fractions cannot be represented exactly as binary fractions. Type: Union

RequestPermissionOutcome

The outcome of a permission request. Type: Union
cancelled
object
The prompt turn was cancelled before the user responded.When a client sends a session/cancel notification to cancel an ongoing prompt turn, it MUST respond to all pending session/request_permission requests with this Cancelled outcome.See protocol docs: Cancellation
selected
object
The user selected one of the provided options.
A resource that the server is capable of reading, included in a prompt or tool call result. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
annotations
description
string | null
mimeType
string | null
name
string
required
size
integer | null
title
string | null
uri
string
required

Role

The sender or recipient of messages and data in a conversation. Type: Enumeration
Value
"assistant"
"user"

SelectedPermissionOutcome

The user selected one of the provided options. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
optionId
The ID of the option the user selected.

SessionAdditionalDirectoriesCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for additional session directories support. By supplying \{\} it means that the agent supports the additionalDirectories field on supported session lifecycle requests and session/list. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

SessionCapabilities

Session capabilities supported by the agent. As a baseline, all Agents MUST support session/new, session/prompt, session/cancel, and session/update. Optionally, they MAY support other session methods and notifications by specifying additional capabilities. Note: session/load is still handled by the top-level load_session capability. This will be unified in future versions of the protocol. See protocol docs: Session Capabilities Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Whether the agent supports additionalDirectories on supported session lifecycle requests and session/list.
Whether the agent supports session/close.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Whether the agent supports session/fork.
Whether the agent supports session/list.
Whether the agent supports session/resume.

SessionCloseCapabilities

Capabilities for the session/close method. By supplying \{\} it means that the agent supports closing of sessions. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

SessionConfigBoolean

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A boolean on/off toggle session configuration option payload. Type: Object Properties:
currentValue
boolean
required
The current value of the boolean option.

SessionConfigGroupId

Unique identifier for a session configuration option value group. Type: string

SessionConfigId

Unique identifier for a session configuration option. Type: string

SessionConfigOption

A session configuration option selector and its current state. Type: Union Shared properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Optional semantic category for this option (UX only).
description
string | null
Optional description for the Client to display to the user.
Unique identifier for the configuration option.
name
string
required
Human-readable label for the option.
Variants:
select
object
Single-value selector (dropdown).
boolean
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Boolean on/off toggle.

SessionConfigOptionCategory

Semantic category for a session configuration option. This is intended to help Clients distinguish broadly common selectors (e.g. model selector vs session mode selector vs thought/reasoning level) for UX purposes (keyboard shortcuts, icons, placement). It MUST NOT be required for correctness. Clients MUST handle missing or unknown categories gracefully. Category names beginning with _ are free for custom use, like other ACP extension methods. Category names that do not begin with _ are reserved for the ACP spec. Type: Union
mode
string
Session mode selector.
model
string
Model selector.
thought_level
string
Thought/reasoning level selector.
other
string
Unknown / uncategorized selector.

SessionConfigSelect

A single-value selector (dropdown) session configuration option payload. Type: Object Properties:
currentValue
The currently selected value.
The set of selectable options.

SessionConfigSelectGroup

A group of possible values for a session configuration option. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Unique identifier for this group.
name
string
required
Human-readable label for this group.
The set of option values in this group.

SessionConfigSelectOption

A possible value for a session configuration option. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string | null
Optional description for this option value.
name
string
required
Human-readable label for this option value.
Unique identifier for this option value.

SessionConfigSelectOptions

Possible values for a session configuration option. Type: Union
Ungrouped
array
A flat list of options with no grouping.
Grouped
array
A list of options grouped under headers.

SessionConfigValueId

Unique identifier for a session configuration option value. Type: string

SessionForkCapabilities

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for the session/fork method. By supplying \{\} it means that the agent supports forking of sessions. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

SessionId

A unique identifier for a conversation session between a client and agent. Sessions maintain their own context, conversation history, and state, allowing multiple independent interactions with the same agent. See protocol docs: Session ID Type: string

SessionInfo

Information about a session returned by session/list Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
additionalDirectories
"string"[]
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Authoritative ordered additional workspace roots for this session. Each path must be absolute.When omitted or empty, there are no additional roots for the session.
cwd
string
required
The working directory for this session. Must be an absolute path.
sessionId
required
Unique identifier for the session
title
string | null
Human-readable title for the session
updatedAt
string | null
ISO 8601 timestamp of last activity

SessionInfoUpdate

Update to session metadata. All fields are optional to support partial updates. Agents send this notification to update session information like title or custom metadata. This allows clients to display dynamic session names and track session state changes. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
title
string | null
Human-readable title for the session. Set to null to clear.
updatedAt
string | null
ISO 8601 timestamp of last activity. Set to null to clear.

SessionListCapabilities

Capabilities for the session/list method. By supplying \{\} it means that the agent supports listing of sessions. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

SessionMode

A mode the agent can operate in. See protocol docs: Session Modes Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
description
string | null
name
string
required

SessionModeId

Unique identifier for a Session Mode. Type: string

SessionModeState

The set of modes and the one currently active. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
availableModes
The set of modes that the Agent can operate in
currentModeId
The current mode the Agent is in.

SessionModelState

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. The set of models and the one currently active. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
availableModels
required
The set of models that the Agent can use
currentModelId
required
The current model the Agent is in.

SessionResumeCapabilities

Capabilities for the session/resume method. By supplying \{\} it means that the agent supports resuming of sessions. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility

SessionUpdate

Different types of updates that can be sent during session processing. These updates provide real-time feedback about the agent’s progress. See protocol docs: Agent Reports Output Type: Union
user_message_chunk
object
A chunk of the user’s message being streamed.
agent_message_chunk
object
A chunk of the agent’s response being streamed.
agent_thought_chunk
object
A chunk of the agent’s internal reasoning being streamed.
tool_call
object
Notification that a new tool call has been initiated.
tool_call_update
object
Update on the status or results of a tool call.
plan
object
The agent’s execution plan for complex tasks. See protocol docs: Agent Plan
available_commands_update
object
Available commands are ready or have changed
current_mode_update
object
The current mode of the session has changedSee protocol docs: Session Modes
config_option_update
object
Session configuration options have been updated.
session_info_update
object
Session metadata has been updated (title, timestamps, custom metadata)
usage_update
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Context window and cost update for the session.

StopReason

Reasons why an agent stops processing a prompt turn. See protocol docs: Stop Reasons Type: Union
end_turn
string
The turn ended successfully.
max_tokens
string
The turn ended because the agent reached the maximum number of tokens.
max_turn_requests
string
The turn ended because the agent reached the maximum number of allowed agent requests between user turns.
refusal
string
The turn ended because the agent refused to continue. The user prompt and everything that comes after it won’t be included in the next prompt, so this should be reflected in the UI.
cancelled
string
The turn was cancelled by the client via session/cancel.This stop reason MUST be returned when the client sends a session/cancel notification, even if the cancellation causes exceptions in underlying operations. Agents should catch these exceptions and return this semantically meaningful response to confirm successful cancellation.

StringFormat

String format types for string properties in elicitation schemas. Type: Union
email
string
Email address format.
uri
string
URI format.
date
string
Date format (YYYY-MM-DD).
date-time
string
Date-time format (ISO 8601).

StringPropertySchema

Schema for string properties in an elicitation form. When enum or oneOf is set, this represents a single-select enum with "type": "string". Type: Object Properties:
default
string | null
Default value.
description
string | null
Human-readable description.
enum
"string"[] | null
Enum values for untitled single-select enums.
format
String format.
maxLength
integer | null
Maximum string length.
  • Minimum: 0
minLength
integer | null
Minimum string length.
  • Minimum: 0
oneOf
Titled enum options for titled single-select enums.
pattern
string | null
Pattern the string must match.
title
string | null
Optional title for the property.

Terminal

Embed a terminal created with terminal/create by its id. The terminal must be added before calling terminal/release. See protocol docs: Terminal Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
terminalId
string
required

TerminalExitStatus

Exit status of a terminal command. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
exitCode
integer | null
The process exit code (may be null if terminated by signal).
  • Minimum: 0
signal
string | null
The signal that terminated the process (may be null if exited normally).

TextContent

Text provided to or from an LLM. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
annotations
text
string
required

TextDocumentContentChangeEvent

A content change event for a document. When range is None, text is the full content of the document. When range is Some, text replaces the given range. Type: Object Properties:
range
Range | null
The range of the document that changed. If None, the entire content is replaced.
text
string
required
The new text for the range, or the full document content if range is None.

TextDocumentSyncKind

How the agent wants document changes delivered. Type: Union
full
string
Client sends the entire file content on each change.
incremental
string
Client sends only the changed ranges.

TextResourceContents

Text-based resource contents. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
mimeType
string | null
text
string
required
uri
string
required

TitledMultiSelectItems

Items definition for titled multi-select enum properties. Type: Object Properties:
anyOf
required
Titled enum options.

ToolCall

Represents a tool call that the language model has requested. Tool calls are actions that the agent executes on behalf of the language model, such as reading files, executing code, or fetching data from external sources. See protocol docs: Tool Calls Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
Content produced by the tool call.
The category of tool being invoked. Helps clients choose appropriate icons and UI treatment.
File locations affected by this tool call. Enables “follow-along” features in clients.
rawInput
object
Raw input parameters sent to the tool.
rawOutput
object
Raw output returned by the tool.
Current execution status of the tool call.
title
string
required
Human-readable title describing what the tool is doing.
toolCallId
required
Unique identifier for this tool call within the session.

ToolCallContent

Content produced by a tool call. Tool calls can produce different types of content including standard content blocks (text, images) or file diffs. See protocol docs: Content Type: Union
content
object
Standard content block (text, images, resources).
diff
object
File modification shown as a diff.
terminal
object
Embed a terminal created with terminal/create by its id.The terminal must be added before calling terminal/release.See protocol docs: Terminal

ToolCallId

Unique identifier for a tool call within a session. Type: string

ToolCallLocation

A file location being accessed or modified by a tool. Enables clients to implement “follow-along” features that track which files the agent is working with in real-time. See protocol docs: Following the Agent Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
line
integer | null
Optional line number within the file.
  • Minimum: 0
path
string
required
The file path being accessed or modified.

ToolCallStatus

Execution status of a tool call. Tool calls progress through different statuses during their lifecycle. See protocol docs: Status Type: Union
pending
string
The tool call hasn’t started running yet because the input is either streaming or we’re awaiting approval.
in_progress
string
The tool call is currently running.
completed
string
The tool call completed successfully.
failed
string
The tool call failed with an error.

ToolCallUpdate

An update to an existing tool call. Used to report progress and results as tools execute. All fields except the tool call ID are optional - only changed fields need to be included. See protocol docs: Updating Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
content
Replace the content collection.
kind
ToolKind | null
Update the tool kind.
locations
Replace the locations collection.
rawInput
object
Update the raw input.
rawOutput
object
Update the raw output.
status
Update the execution status.
title
string | null
Update the human-readable title.
toolCallId
required
The ID of the tool call being updated.

ToolKind

Categories of tools that can be invoked. Tool kinds help clients choose appropriate icons and optimize how they display tool execution progress. See protocol docs: Creating Type: Union
read
string
Reading files or data.
edit
string
Modifying files or content.
delete
string
Removing files or data.
move
string
Moving or renaming files.
search
string
Searching for information.
execute
string
Running commands or code.
think
string
Internal reasoning or planning.
fetch
string
Retrieving external data.
switch_mode
string
Switching the current session mode.
other
string
Other tool types (default).

UnstructuredCommandInput

All text that was typed after the command name is provided as input. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
hint
string
required
A hint to display when the input hasn’t been provided yet

UntitledMultiSelectItems

Items definition for untitled multi-select enum properties. Type: Object Properties:
enum
"string"[]
required
Allowed enum values.
Item type discriminator. Must be "string".

Usage

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Token usage information for a prompt turn. Type: Object Properties:
cachedReadTokens
integer | null
Total cache read tokens.
  • Minimum: 0
cachedWriteTokens
integer | null
Total cache write tokens.
  • Minimum: 0
inputTokens
uint64
required
Total input tokens across all turns.
  • Minimum: 0
outputTokens
uint64
required
Total output tokens across all turns.
  • Minimum: 0
thoughtTokens
integer | null
Total thought/reasoning tokens
  • Minimum: 0
totalTokens
uint64
required
Sum of all token types across session.
  • Minimum: 0

UsageUpdate

UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Context window and cost update for a session. Type: Object Properties:
_meta
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibility
cost
Cost | null
Cumulative session cost (optional).
size
uint64
required
Total context window size in tokens.
  • Minimum: 0
used
uint64
required
Tokens currently in context.
  • Minimum: 0

WorkspaceFolder

A workspace folder. Type: Object Properties:
name
string
required
The display name of the folder.
uri
string
required
The URI of the folder.