The schema file can be downloaded directly from the latest GitHub
release.
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 an authentication method ID that was advertised during initialization and whose type defines theauthenticate flow.
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: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
required
The ID of the authentication method to use.
Must be one of the methods advertised in the initialize response.
AuthenticateResponse
Response to theauthenticate method.
Type: Object
Properties:
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: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.
string
required
The URI of the changed document.
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: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
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: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
string
required
The URI of the focused document.
int64
required
The version number of the document.
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: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
string
required
The language identifier of the document (e.g., “rust”, “python”).
string
required
The full text content of the document.
string
required
The URI of the opened document.
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: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
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
InitializeRequest
Request parameters for the initialize method. Sent by the client to establish connection and negotiate capabilities. See protocol docs: Initialization Type: Object Properties: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
Capabilities supported by the client.
- Default:
{"fs":{"readTextFile":false,"writeTextFile":false},"terminal":false,"auth":{"terminal":false}}
Implementation | null
Information about the Client name and version sent to the Agent.Note: in future versions of the protocol, this will be required.
required
The latest protocol version supported by the client.
InitializeResponse
Response to theinitialize method.
Contains the negotiated protocol version and agent capabilities.
See protocol docs: Initialization
Type: Object
Properties:
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
Capabilities supported by the agent.
- Default:
{"loadSession":false,"promptCapabilities":{"image":false,"audio":false,"embeddedContext":false},"mcpCapabilities":{"http":false,"sse":false,"acp":false},"sessionCapabilities":{},"auth":{}}
Implementation | null
Information about the Agent name and version sent to the Client.Note: in future versions of the protocol, this will be required.
Authentication methods supported by the agent.
- Default:
[]
required
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
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
Request parameters for the logout method. Terminates the current authenticated session. Type: Object Properties: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
Response to thelogout method.
Type: Object
Properties:
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
mcp/message
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Exchanges an MCP-over-ACP message.MessageMcpNotification
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification parameters formcp/message.
This is used when the wrapped MCP message is a notification and the outer JSON-RPC
envelope has no id.
Type: Object
Properties:
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
required
The MCP-over-ACP connection this message is sent on.
string
required
The inner MCP method name.
object | null
Optional inner MCP params.If omitted or set to
null, the inner MCP message has no params.MessageMcpRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters formcp/message.
Type: Object
Properties:
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
required
The MCP-over-ACP connection this message is sent on.
string
required
The inner MCP method name.
object | null
Optional inner MCP params.If omitted or set to
null, the inner MCP message has no params.MessageMcpResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response tomcp/message.
This is the inner MCP response result payload. Any JSON value is valid.
nes/accept
UNSTABLE Notification sent when a suggestion is accepted.AcceptNesNotification
Notification sent when a suggestion is accepted. Type: Object Properties: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
required
The ID of the accepted suggestion.
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: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
CloseNesResponse
Response from closing an NES session. Type: Object Properties: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: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
required
The ID of the rejected suggestion.
NesRejectReason | null
The reason for rejection.
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: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
NesRepository | null
Repository metadata, if the workspace is a git repository.
WorkspaceFolder[] | null
The workspace folders.
string | null
The root URI of the workspace.
StartNesResponse
Response tones/start.
Type: Object
Properties:
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/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: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
NesSuggestContext | null
Context for the suggestion, included based on agent capabilities.
required
What triggered this suggestion request.
string
required
The URI of the document to suggest for.
int64
required
The version number of the document.
SuggestNesResponse
Response tones/suggest.
Type: Object
Properties:
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
required
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.DisableProviderRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters forproviders/disable.
Type: Object
Properties:
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
required
Provider ID to disable.
DisableProviderResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response toproviders/disable.
Type: Object
Properties:
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 forproviders/list.
Type: Object
Properties:
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 toproviders/list.
Type: Object
Properties:
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
required
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.SetProviderRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters forproviders/set.
Replaces the full configuration for one provider ID.
Type: Object
Properties:
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
required
Protocol type for this provider.
string
required
Base URL for requests sent through this provider.
object
Full headers map for this provider.
May include authorization, routing, or other integration-specific headers.
required
Provider ID to configure.
SetProviderResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response toproviders/set.
Type: Object
Properties:
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/updatenotifications - Respond to the original
session/promptrequest withStopReason::Cancelled
CancelNotification
Notification to cancel ongoing operations for a session. See protocol docs: Cancellation Type: Object Properties: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/close
Closes an active session and frees up any resources associated with it. This method is only available if the agent advertises thesessionCapabilities.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 ifsession/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:
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
CloseSessionResponse
Response from closing a session. Type: Object Properties: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/delete
Deletes an existing session fromsession/list.
This method is only available if the agent advertises the sessionCapabilities.delete capability.
DeleteSessionRequest
Request parameters for deleting an existing session fromsession/list.
Only available if the Agent supports the sessionCapabilities.delete capability.
Type: Object
Properties:
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
DeleteSessionResponse
Response from deleting a session. Type: Object Properties: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 thesession.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 thesession.fork capability.
Type: Object
Properties:
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
"string"[]
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.
string
required
The working directory for this session. Must be an absolute path.
List of MCP servers to connect to for this session.
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: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
SessionConfigOption[] | null
Initial session configuration options if supported by the Agent.
SessionModeState | null
Initial mode state if supported by the AgentSee protocol docs: Session Modes
session/list
Lists existing sessions known to the agent. This method is only available if the agent advertises thesessionCapabilities.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 thesessionCapabilities.list capability.
Type: Object
Properties:
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
string | null
Opaque cursor token from a previous response’s nextCursor field for cursor-based pagination
string | null
Filter sessions by working directory. Must be an absolute path.
ListSessionsResponse
Response from listing sessions. Type: Object Properties: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
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.
required
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 theloadSession 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
LoadSessionRequest
Request parameters for loading an existing session. Only available if the Agent supports theloadSession capability.
See protocol docs: Loading Sessions
Type: Object
Properties:
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
"string"[]
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. It may differ from any previously used or reported list as long as
the request
cwd matches the session’s cwd.string
required
The working directory for this session. Must be an absolute path.
required
List of MCP servers to connect to for this session.
LoadSessionResponse
Response from loading an existing session. Type: Object Properties: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
SessionConfigOption[] | null
Initial session configuration options if supported by the Agent.
SessionModeState | null
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
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: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
"string"[]
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.string
required
The working directory for this session. Must be an absolute path.
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: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
SessionConfigOption[] | null
Initial session configuration options if supported by the Agent.
SessionModeState | null
Initial mode state if supported by the AgentSee protocol docs: Session Modes
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
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: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
required
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.PromptResponse
Response from processing a user prompt. See protocol docs: Check for Completion Type: Object Properties: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
required
Indicates why the agent stopped processing the turn.
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Token usage for this turn (optional).
session/resume
Resumes an existing session without returning previous messages. This method is only available if the agent advertises thesessionCapabilities.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 (unlikesession/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:
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
"string"[]
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. It may differ from any previously used or reported list as long as
the request
cwd matches the session’s cwd.string
required
The working directory for this session. Must be an absolute path.
List of MCP servers to connect to for this session.
ResumeSessionResponse
Response from resuming an existing session. Type: Object Properties: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
SessionConfigOption[] | null
Initial session configuration options if supported by the Agent.
SessionModeState | null
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: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
required
The ID of the configuration option to set.
object
A boolean value (
type: "boolean").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 tosession/set_config_option method.
Type: Object
Properties:
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
required
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 inavailableModes 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: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
required
The ID of the mode to set.
SetSessionModeResponse
Response tosession/set_mode method.
Type: Object
Properties:
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
Notification that a URL-based elicitation has completed. See protocol docs: ElicitationCompleteElicitationNotification
Notification sent by the agent when a URL-based elicitation is complete. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilityrequired
The ID of the elicitation that completed.
elicitation/create
Requests structured user input via a form or URL. See protocol docs: ElicitationCreateElicitationRequest
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: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilitystring
required
A human-readable message describing what input is needed.
object
Form-based elicitation where the client renders a form from the provided schema.
object
URL-based elicitation where the client directs the user to a URL.
object
Custom or future elicitation mode.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Clients that do not understand this mode should preserve the raw payload
when storing, replaying, proxying, or forwarding elicitation requests.
They MUST NOT render it as a known elicitation mode.CreateElicitationResponse
Response from the client to an elicitation request. Type: Union Shared properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilityobject
The user accepted and provided content.
object
The user declined the elicitation.
object
The elicitation was cancelled.
object
Custom or future elicitation action.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Agents that do not understand this action should preserve the raw
payload when storing, replaying, proxying, or forwarding elicitation
responses. They MUST NOT treat it as a known elicitation action.fs/read_text_file
Reads content from a text file in the client’s file system. Only available if the client advertises thefs.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 thefs.readTextFile capability.
Type: Object
Properties:
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
integer | null
Maximum number of lines to read.
- Minimum:
0
integer | null
Line number to start reading from (1-based).
- Minimum:
0
string
required
Absolute path to the file to read.
ReadTextFileResponse
Response containing the contents of a text file. Type: Object Properties: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
string
required
Content payload returned by this response.
fs/write_text_file
Writes content to a text file in the client’s file system. Only available if the client advertises thefs.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 thefs.writeTextFile capability.
Type: Object
Properties:
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
string
required
The text content to write to the file.
string
required
Absolute path to the file to write.
WriteTextFileResponse
Response tofs/write_text_file
Type: Object
Properties:
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
mcp/connect
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Opens an MCP-over-ACP connection.ConnectMcpRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters formcp/connect.
Type: Object
Properties:
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
required
The ACP MCP server ID that was provided by the component declaring the MCP server.
ConnectMcpResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response tomcp/connect.
Type: Object
Properties:
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
required
The unique identifier for this MCP-over-ACP connection.
mcp/disconnect
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Closes an MCP-over-ACP connection.DisconnectMcpRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters formcp/disconnect.
Type: Object
Properties:
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
required
The MCP-over-ACP connection to close.
DisconnectMcpResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response tomcp/disconnect.
Type: Object
Properties:
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
mcp/message
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Exchanges an MCP-over-ACP message.MessageMcpNotification
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification parameters formcp/message.
This is used when the wrapped MCP message is a notification and the outer JSON-RPC
envelope has no id.
Type: Object
Properties:
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
required
The MCP-over-ACP connection this message is sent on.
string
required
The inner MCP method name.
object | null
Optional inner MCP params.If omitted or set to
null, the inner MCP message has no params.MessageMcpRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request parameters formcp/message.
Type: Object
Properties:
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
required
The MCP-over-ACP connection this message is sent on.
string
required
The inner MCP method name.
object | null
Optional inner MCP params.If omitted or set to
null, the inner MCP message has no params.MessageMcpResponse
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response tomcp/message.
This is the inner MCP response result payload. Any JSON value is valid.
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 viasession/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: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
required
Available permission options for the user to choose from.
required
Details about the tool call requiring permission.
RequestPermissionResponse
Response to a permission request. Type: Object Properties: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
required
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 asession/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: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
required
The actual update content.
terminal/create
Executes a command in a new terminal Only available if theterminal 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: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
"string"[]
Array of command arguments.
string
required
The command to execute.
string | null
Working directory for the command. Must be an absolute path.
Environment variables for the command.
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
CreateTerminalResponse
Response containing the ID of the created terminal. Type: Object Properties: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
required
The unique identifier for the created terminal.
terminal/kill
Kills the terminal command without releasing the terminal Whileterminal/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: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
required
The ID of the terminal to kill.
KillTerminalResponse
Response toterminal/kill method
Type: Object
Properties:
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: TerminalsTerminalOutputRequest
Request to get the current output and status of a terminal. Type: Object Properties: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
required
The ID of the terminal to get output from.
TerminalOutputResponse
Response containing the terminal output and exit status. Type: Object Properties: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
TerminalExitStatus | null
Exit status if the command has completed.
string
required
The terminal output captured so far.
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. Useterminal/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: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
required
The ID of the terminal to release.
ReleaseTerminalResponse
Response to terminal/release method Type: Object Properties: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: TerminalsWaitForTerminalExitRequest
Request to wait for a terminal command to exit. Type: Object Properties: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
required
The ID of the terminal to wait for.
WaitForTerminalExitResponse
Response containing the exit status of a terminal command. Type: Object Properties: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
integer | null
The process exit code (may be null if terminated by signal).
- Minimum:
0
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 ‘/cancel_request` notification. If an agent or client receives notifications starting with ’$/’ it is free to ignore the notification.$/cancel_request
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:- MAY cancel the corresponding request activity and all nested activities
- MAY send any pending notifications.
- 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)
CancelRequestNotification
Notification to cancel an ongoing request. See protocol docs: Cancellation Type: Object Properties: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
AgentAuthCapabilities
Authentication-related capabilities supported by the agent. Type: Object Properties: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
LogoutCapabilities | null
Whether the agent supports the logout method.Optional. Omitted or
null both mean the agent does not advertise support.
Supplying \{\} means 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: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
Authentication-related capabilities supported by the agent.
- Default:
{}
boolean
Whether the agent supports
session/load.- Default:
false
MCP capabilities supported by the agent.
- Default:
{"http":false,"sse":false,"acp":false}
NesCapabilities | null
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.Optional. Omitted or
null both mean the agent does not advertise support
for NES methods.PositionEncodingKind | null
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.
Prompt capabilities supported by the agent.
- Default:
{"image":false,"audio":false,"embeddedContext":false}
ProvidersCapabilities | null
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.Optional. Omitted or
null both mean the agent does not advertise support.
Supplying \{\} means the agent supports provider configuration methods.Session lifecycle and prompt capabilities advertised by the agent.
- Default:
{}
Annotations
Optional annotations for the client. The client can use annotations to inform how objects are used or displayed Type: Object Properties: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
string | null
Timestamp indicating when the underlying resource was last modified.
number | null
Relative importance of this content when clients choose what to surface.
AudioContent
Audio provided to or from an LLM. Type: Object Properties: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 | null
Optional annotations that help clients decide how to display or route this content.
string
required
Base64-encoded media payload.
string
required
MIME type describing the encoded media payload.
AuthCapabilities
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: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
boolean
Whether the client supports
terminal authentication methods.The client should set this to true only when it can reproduce the
configured agent invocation in an interactive terminal. When true, the
agent may include terminal entries in its authentication methods.- Default:
false
AuthMethod
Describes an available authentication method. Thetype field acts as the discriminator in the serialized JSON form.
When no type is present, the method is treated as agent.
Type: Union
object
Client runs the configured agent program as a separate interactive
process, without passing this method to
authenticate.Agent handles authentication itself through
authenticate.This is the default when no type is specified.AuthMethodAgent
Agent handles authentication itself throughauthenticate.
This is the default authentication method type.
Type: Object
Properties:
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
string | null
Optional description providing more details about this authentication method.
required
Unique identifier for this authentication method.
string
required
Human-readable name of the authentication method.
AuthMethodId
Typed identifier used for auth method values on the wire. Type:string
AuthMethodTerminal
Terminal-based authentication method. The client runs the configured agent program as a separate interactive process for the user to authenticate via a TUI. Agents MUST advertise this method only when the client enabled its terminal authentication capability. A zero exit status signals success; any other termination signals failure. The client MUST NOT pass this method toauthenticate.
Type: Object
Properties:
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
"string"[]
Additional arguments to append to the configured agent invocation for terminal auth.
string | null
Optional description providing more details about this authentication method.
object
Additional environment variables to set on the configured agent invocation for terminal auth.
These values override same-named variables in the base launch configuration.
required
Unique identifier for this authentication method.
string
required
Human-readable name of the authentication method.
AvailableCommand
Information about a command. Type: Object Properties: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
string
required
Human-readable description of what the command does.
AvailableCommandInput | null
Input for the command if required
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: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
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: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
required
Commands the agent can execute
BlobResourceContents
Binary resource contents. Type: Object Properties: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
string
required
Base64-encoded bytes for a binary resource payload.
string | null
MIME type describing the encoded media payload.
string
required
URI associated with this resource or media payload.
BooleanConfigOptionCapabilities
Capabilities for boolean session configuration options. Supplying\{\} means the client supports boolean session configuration options.
Type: Object
Properties:
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
BooleanPropertySchema
Schema for boolean properties in an elicitation form. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilityboolean | null
Default value.Optional. Omitted and
null are equivalent and mean no default value is provided.string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided.string | null
Optional title for the property.Optional. Omitted and
null are equivalent and mean no title is provided.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: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
Authentication capabilities supported by the client.
Determines which authentication method types the agent may include
in its
InitializeResponse.- Default:
{"terminal":false}
ElicitationCapabilities | null
Elicitation capabilities supported by the client.
Determines which elicitation modes the agent may use.Optional. Omitted or
null both mean the client does not advertise
elicitation support.File system capabilities supported by the client.
Determines which file operations the agent can request.
- Default:
{"readTextFile":false,"writeTextFile":false}
ClientNesCapabilities | null
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.Optional. Omitted or
null both mean the client does not advertise any
NES suggestion-kind extensions.PlanCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Whether the client supports
plan_update and plan_removed session updates.Optional. Omitted or null both mean the client does not advertise support.
Supplying \{\} means the client can receive both update types.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.
ClientSessionCapabilities | null
Session-related capabilities supported by the client.Optional. Omitted or
null both mean the client does not advertise any
session-related extensions.boolean
Whether the Client support all
terminal/* methods.- Default:
false
ClientNesCapabilities
NES capabilities advertised by the client during initialization. Type: Object Properties: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
NesJumpCapabilities | null
Whether the client supports the
jump suggestion kind.NesRenameCapabilities | null
Whether the client supports the
rename suggestion kind.Whether the client supports the
searchAndReplace suggestion kind.ClientSessionCapabilities
Session-related capabilities supported by the client. Type: Object Properties: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
CompactionCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Support for ID-addressed context compaction updates. Omitted or
null
means unsupported; \{\} advertises the complete compaction contract.Config option capabilities supported by the client.Omitted or
null both mean the client does not advertise support for any
config option extensions.CompactionCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Client support for ID-addressed context compaction updates. Type:object
CompactionId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for a context compaction within a session. Type:string
CompactionStatus
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Lifecycle state of a context compaction. Type: Unionstring
Compaction has started and has not finished.
string
Compaction finished successfully.
string
Compaction finished unsuccessfully.
string
Compaction was cancelled before it finished.
string
Custom or future compaction status.Values beginning with
_ are reserved for implementation-specific
extensions. Other unknown values are reserved for future ACP statuses.CompactionSummaryChunk
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A content block appended to the retained summary of an in-progress compaction. Agents send chunks only after anin_progress update and before
the terminal update for the same ID. Agents MUST only send this update when
the Client advertised ClientSessionCapabilities::compaction.
Type: Object
Properties:
object | null
Metadata scoped to this chunk. Omission and
null both mean absent.required
ID of the compaction whose summary receives this content.
required
One content block to append.
CompactionUpdate
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A context compaction upsert. The first update fixes the compaction’s timeline position. Later updates with the same ID patch that entity in place. Agents MUST only send this update when the Client advertisedClientSessionCapabilities::compaction.
summary, error, and _meta have patch semantics: omission leaves the
stored value unchanged, null clears it, and a concrete value replaces it.
summary: [] also clears the retained summary. A non-empty summary is only
valid with completed; error is only valid with failed.
Type: Object
Properties:
object | null
Extensible metadata patch for this compaction.
required
The Agent-owned ID of this compaction, unique within the session.
string | null
Human-readable description of why the compaction failed.
required
Current lifecycle status.
ContentBlock[] | null
Complete replacement user-displayable summary retained by the compaction.
ConfigOptionUpdate
Session configuration options have been updated. Type: Object Properties: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
required
The full set of configuration options and their current values.
Content
Standard content block (text, images, resources). Type: Object Properties: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
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/updatenotifications - Progress updates and results from tool calls
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.
object
Images for visual context or analysis.Requires the
image prompt capability when included in prompts.object
Audio data for transcription or analysis.Requires the
audio prompt capability when included in prompts.object
References to resources that the agent can access.All agents MUST support resource links in prompts.
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: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
required
A single item of content
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.Cost
Cost information for a session. Type: Object Properties: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
number
required
Total cumulative cost for session.
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: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
required
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: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
string
required
The new content after modification.
string | null
The original content (None for new files).
string
required
The absolute file path being modified.
ElicitationAcceptAction
The user accepted the elicitation and provided content. Type: Object Properties:object | null
The user-provided content, if any, as an object matching the requested schema.
ElicitationCapabilities
Elicitation capabilities supported by the client. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: ExtensibilityElicitationFormCapabilities | null
Whether the client supports form-based elicitation.Optional. Omitted and
null are equivalent and mean form support is not advertised.
Supplying \{\} explicitly advertises form support.ElicitationUrlCapabilities | null
Whether the client supports URL-based elicitation.Optional. Omitted or
null both mean the client does not advertise support.
Supplying \{\} means the client supports URL-based elicitation.ElicitationContentValue
Allowed wire representations forElicitationContentValue.
Type: Union
string
String value accepted in elicitation response content.
int64
Integer value accepted in elicitation response content.
double
Number value accepted in elicitation response content.
boolean
Boolean value accepted in elicitation response content.
array
String array value accepted in elicitation response content.
ElicitationFormCapabilities
Form-based elicitation capabilities. Supplying\{\} means the client supports form-based elicitation.
Type: Object
Properties:
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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: ExtensibilityElicitationFormMode
Form-based elicitation mode where the client renders a form from the provided schema. Type: Union Shared properties:required
A JSON Schema describing the form fields to present to the user.
Tied to a session, optionally to a specific tool call within that session.
Tied to a specific JSON-RPC request outside of a session
(e.g., during auth/configuration phases before any session is started).
ElicitationId
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
object
String property (or single-select enum when
enum/oneOf is set).object
Number (floating-point) property.
object
Integer property.
object
Boolean property.
object
Multi-select array property.
object
Custom or future elicitation property schema.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Clients that do not understand this property schema type should preserve
the raw schema when storing, replaying, proxying, or forwarding
elicitation requests. They MUST NOT render it as a known input control.ElicitationRequestScope
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: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: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilitystring | null
Optional description of what this schema represents.Optional. Omitted and
null are equivalent and mean no schema description is provided.object
Property definitions (must be primitive types).
- Default:
{}
"string"[] | null
List of required property names.Optional. Omitted and
null are equivalent and mean no property names are required.string | null
Optional title for the schema.Optional. Omitted and
null are equivalent and mean no title is provided.Type discriminator. Always
"object".- Default:
"object"
ElicitationSchemaType
Type discriminator for elicitation schemas. Type: Unionstring
Object schema type.
ElicitationSessionScope
Session-scoped elicitation, optionally tied to a specific tool call. Whentool_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:
ToolCallId | null
Optional tool call within the session.Optional. Omitted and
null are equivalent and mean the elicitation is scoped to the
session without a specific tool call.ElicitationUrlCapabilities
URL-based elicitation capabilities. Supplying\{\} means the client supports URL-based elicitation.
Type: Object
Properties:
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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: ExtensibilityElicitationUrlMode
URL-based elicitation mode where the client directs the user to a URL. Type: Union Shared properties:required
The unique identifier for this elicitation.
string
required
The URL to direct the user to.
- Format:
uri
Tied to a session, optionally to a specific tool call within that session.
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: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 | null
Optional annotations that help clients decide how to display or route this content.
required
Embedded resource payload, either text or binary data.
EmbeddedResourceResource
Resource content that can be embedded in a message. Type: UnionText resource contents embedded directly in the message.
Binary resource contents embedded directly in the message.
EnumOption
A titled enum option with a const value, human-readable title, and optional description. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilitystring
required
The constant value for this option.
string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided.string
required
Human-readable title for this option.
EnvVariable
An environment variable to set when launching an MCP server. Type: Object Properties: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
string
required
The name of the environment variable.
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:A number indicating the error type that occurred. This must be an integer as
defined in the JSON-RPC specification.
object
Optional primitive or structured value that contains additional information
about the error. This may include debugging information or context-specific
details.
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: Unionint32
Parse error: Invalid JSON was received by the server. An error occurred on
the server while parsing the JSON text.
int32
Invalid request: The JSON sent is not a valid Request object.
int32
Method not found: The method does not exist or is not available.
int32
Invalid params: Invalid method parameter(s).
int32
Internal error: Internal JSON-RPC error. Reserved for
implementation-defined server errors.
int32
Request cancelled: Execution of the method was aborted either due to a
cancellation request from the caller or because of resource constraints or
shutdown.
int32
Authentication required: Authentication is required before this operation
can be performed.
int32
Resource not found: A given resource, such as a file, was not found.
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: ExtensibilityExtRequest
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: ExtensibilityExtResponse
Allows for sending an arbitrary response to anExtRequest 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: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
boolean
Whether the Client supports
fs/read_text_file requests.- Default:
false
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: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
string
required
The name of the HTTP header.
string
required
The value to set for the HTTP header.
ImageContent
An image provided to or from an LLM. Type: Object Properties: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 | null
Optional annotations that help clients decide how to display or route this content.
string
required
Base64-encoded media payload.
string
required
MIME type describing the encoded media payload.
string | null
URI associated with this resource or media payload.
Implementation
Metadata about the implementation of the client or agent. Describes the name and version of an ACP implementation, with an optional title for UI representation. Type: Object Properties: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
string
required
Intended for programmatic or logical use, but can be used as a display
name fallback if title isn’t present.
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.
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: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilityinteger | null
Default value.Optional. Omitted and
null are equivalent and mean no default value is provided.string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided.integer | null
Maximum value (inclusive).Optional. Omitted and
null are equivalent and mean there is no inclusive upper bound.integer | null
Minimum value (inclusive).Optional. Omitted and
null are equivalent and mean there is no inclusive lower bound.string | null
Optional title for the property.Optional. Omitted and
null are equivalent and mean no title is provided.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
string
Anthropic API protocol.
string
OpenAI API protocol.
string
Azure OpenAI API protocol.
string
Google Vertex AI API protocol.
string
AWS Bedrock API protocol.
string
Unknown or custom protocol.
LogoutCapabilities
Logout capabilities supported by the agent. Supplying\{\} means the agent supports the logout method.
Type: Object
Properties:
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: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
boolean
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Agent supports
McpServer::Acp.- Default:
false
boolean
Agent supports
McpServer::Http.- Default:
false
boolean
Agent supports
McpServer::Sse.- Default:
false
McpConnectionId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A unique identifier for an active MCP-over-ACP connection. Type:string
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: Unionobject
HTTP transport configurationOnly available when the Agent capabilities indicate
mcp_capabilities.http is true.object
SSE transport configurationOnly available when the Agent capabilities indicate
mcp_capabilities.sse is true.object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.ACP transport configurationOnly available when the Agent capabilities indicate
mcp_capabilities.acp is true.
The MCP server is provided by an ACP component and communicates over the ACP channel.Stdio transport configurationAll Agents MUST support this transport.
McpServerAcp
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. ACP transport configuration for MCP. The MCP server is provided by an ACP component and communicates over the ACP channel usingmcp/connect, mcp/message, and mcp/disconnect.
Type: Object
Properties:
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
string
required
Human-readable name identifying this MCP server.
required
Unique identifier for this MCP server, generated by the component providing it.Providers MUST NOT reuse an ID for multiple ACP-transport MCP servers that are visible
on the same ACP connection.
McpServerAcpId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for an MCP server using the ACP transport. The value is opaque and generated by the ACP component providing the MCP server. It is used bymcp/connect to route connection requests back to the component that declared the
server.
Type: string
McpServerHttp
HTTP transport configuration for MCP. Type: Object Properties: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
required
HTTP headers to set when making requests to the MCP server.
string
required
Human-readable name identifying this MCP server.
string
required
URL to the MCP server.
McpServerSse
SSE transport configuration for MCP. Type: Object Properties: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
required
HTTP headers to set when making requests to the MCP server.
string
required
Human-readable name identifying this MCP server.
string
required
URL to the MCP server.
McpServerStdio
Stdio transport configuration for MCP. Type: Object Properties: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
"string"[]
required
Command-line arguments to pass to the MCP server.
string
required
Absolute path to the MCP server executable.
required
Environment variables to set when launching the MCP server.
string
required
Human-readable name identifying this MCP server.
MessageId
Unique identifier for a message within a session. Type:string
MultiSelectItems
Items for a multi-select (array) property schema. Type: Unionobject
Multi-select string items with plain string values.
object
Custom or future typed multi-select items.
Titled multi-select items with human-readable labels.
MultiSelectPropertySchema
Schema for multi-select (array) properties in an elicitation form. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibility"string"[] | null
Default selected values.Optional. Omitted and
null are equivalent and mean no default selections are provided.string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided.required
The items definition describing allowed values.
integer | null
Maximum number of items to select.Optional. Omitted and
null are equivalent and mean there is no maximum selection count.- Minimum:
0
integer | null
Minimum number of items to select.Optional. Omitted and
null are equivalent and mean there is no minimum selection count.- Minimum:
0
string | null
Optional title for the property.Optional. Omitted and
null are equivalent and mean no title is provided.NesCapabilities
NES capabilities advertised by the agent during initialization. Type: Object Properties: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
NesContextCapabilities | null
Context the agent wants attached to each suggestion request.
NesEventCapabilities | null
Events the agent wants to receive.
NesContextCapabilities
Context capabilities the agent wants attached to each suggestion request. Type: Object Properties: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
NesDiagnosticsCapabilities | null
Whether the agent wants diagnostics context.
NesEditHistoryCapabilities | null
Whether the agent wants edit history context.
NesOpenFilesCapabilities | null
Whether the agent wants open files context.
NesRecentFilesCapabilities | null
Whether the agent wants recent files context.
Whether the agent wants related snippets context.
NesUserActionsCapabilities | null
Whether the agent wants user actions context.
NesDiagnostic
A diagnostic (error, warning, etc.). Type: Object Properties: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
string
required
The diagnostic message.
required
The severity of the diagnostic.
string
required
The URI of the file containing the diagnostic.
NesDiagnosticSeverity
Severity of a diagnostic. Type: Unionstring
An error.
string
A warning.
string
An informational message.
string
A hint.
NesDiagnosticsCapabilities
Capabilities for diagnostics context. Type: Object Properties: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 fordocument/didChange events.
Type: Object
Properties:
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
required
The sync kind the agent wants:
"full" or "incremental".NesDocumentDidCloseCapabilities
Marker fordocument/didClose capability support.
Type: Object
Properties:
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 fordocument/didFocus capability support.
Type: Object
Properties:
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 fordocument/didOpen capability support.
Type: Object
Properties:
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 fordocument/didSave capability support.
Type: Object
Properties:
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: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: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
integer | null
Maximum number of edit history entries the agent can use.
- Minimum:
0
NesEditHistoryEntry
An entry in the edit history. Type: Object Properties: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
string
required
A diff representing the edit.
string
required
The URI of the edited file.
NesEditSuggestion
A text edit suggestion. Type: Object Properties: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
required
The text edits to apply.
required
Unique identifier for accept/reject tracking.
string
required
The URI of the file to edit.
NesEventCapabilities
Event capabilities the agent can consume. Type: Object Properties: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: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
uint32
required
The end line of the excerpt (zero-based).
- Minimum:
0
uint32
required
The start line of the excerpt (zero-based).
- Minimum:
0
string
required
The text content of the excerpt.
NesJumpCapabilities
Marker for jump suggestion support. Type: Object Properties: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: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
required
Unique identifier for accept/reject tracking.
string
required
The file to navigate to.
NesOpenFile
An open file in the editor. Type: Object Properties: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
string
required
The language identifier.
integer | null
Timestamp in milliseconds since epoch of when the file was last focused.
- Minimum:
0
string
required
The URI of the file.
NesOpenFilesCapabilities
Capabilities for open files context. Type: Object Properties: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: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
string
required
The language identifier.
string
required
The full text content of the file.
string
required
The URI of the file.
NesRecentFilesCapabilities
Capabilities for recent files context. Type: Object Properties: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
integer | null
Maximum number of recent files the agent can use.
- Minimum:
0
NesRejectReason
The reason a suggestion was rejected. Type: Unionstring
The user explicitly dismissed the suggestion.
string
The suggestion was shown but the user continued editing without interacting.
string
The suggestion was superseded by a newer suggestion.
string
The request was cancelled before the agent returned a response.
NesRelatedSnippet
A related code snippet from a file. Type: Object Properties: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
required
The code excerpts.
string
required
The URI of the file containing the snippets.
NesRelatedSnippetsCapabilities
Capabilities for related snippets context. Type: Object Properties: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: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: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
required
Unique identifier for accept/reject tracking.
string
required
The new name for the symbol.
string
required
The file URI containing the symbol.
NesRepository
Repository metadata for an NES session. Type: Object Properties: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
string
required
The repository name.
string
required
The repository owner.
string
required
The remote URL of the repository.
NesSearchAndReplaceCapabilities
Marker for search and replace suggestion support. Type: Object Properties: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: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
required
Unique identifier for accept/reject tracking.
boolean | null
Whether
search is a regular expression. Defaults to false.string
required
The replacement text.
string
required
The text or pattern to find.
string
required
The file URI to search within.
NesSuggestContext
Context attached to a suggestion request. Type: Object Properties: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
NesDiagnostic[] | null
Current diagnostics (errors, warnings).
NesEditHistoryEntry[] | null
Recent edit history.
NesOpenFile[] | null
Currently open files in the editor.
NesRecentFile[] | null
Recently accessed files.
Related code snippets.
NesUserAction[] | null
Recent user actions (typing, navigation, etc.).
NesSuggestion
A suggestion returned by the agent. Type: Unionobject
A text edit suggestion.
object
A jump-to-location suggestion.
object
A rename symbol suggestion.
object
A search-and-replace suggestion.
NesSuggestionId
Unique identifier for a next edit suggestion. Type:string
NesTextEdit
A text edit within a suggestion. Type: Object Properties: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
string
required
The replacement text.
NesTriggerKind
What triggered the suggestion request. Type: Unionstring
Triggered by user typing or cursor movement.
string
Triggered by a diagnostic appearing at or near the cursor.
string
Triggered by an explicit user action (keyboard shortcut).
NesUserAction
A user action (typing, cursor movement, etc.). Type: Object Properties: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
string
required
The kind of action (e.g., “insertChar”, “cursorMovement”).
uint64
required
Timestamp in milliseconds since epoch.
- Minimum:
0
string
required
The URI of the file where the action occurred.
NesUserActionsCapabilities
Capabilities for user actions context. Type: Object Properties: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
integer | null
Maximum number of user actions the agent can use.
- Minimum:
0
Notice
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Fire-and-forget advisory information for the user. Notices are live events rather than session history. Agents must not rely on a notice being received, displayed, or seen by the user. No Client capability is required, and unsupported Clients may ignore notices. See RFD: Session Notices Type: Object Properties:object | null
Metadata scoped to this notice.Omitted and
null are equivalent and mean no metadata was supplied.string | null
Optional plain-text detail or guidance.Omitted and
null are equivalent and mean no description was supplied.required
Presentation severity hint.
string
required
Required non-empty plain-text title that can stand alone.
- Min length:
1
NoticeSeverity
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Severity hint for a session notice. Type: Unionstring
Informational notice.
string
Warning notice.
string
Error notice.
string
Custom or future notice severity.Values beginning with
_ are reserved for implementation-specific
extensions. Other unknown values are reserved for future ACP severities.NumberPropertySchema
Schema for number (floating-point) properties in an elicitation form. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilitynumber | null
Default value.Optional. Omitted and
null are equivalent and mean no default value is provided.string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided.number | null
Maximum value (inclusive).Optional. Omitted and
null are equivalent and mean there is no inclusive upper bound.number | null
Minimum value (inclusive).Optional. Omitted and
null are equivalent and mean there is no inclusive lower bound.string | null
Optional title for the property.Optional. Omitted and
null are equivalent and mean no title is provided.PermissionOption
An option presented to the user when requesting permission. Type: Object Properties: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
required
Hint about the nature of this permission option.
string
required
Human-readable label to display to the user.
required
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: Unionstring
Allow this operation only this time.
string
Allow this operation and remember the choice.
string
Reject this operation only this time.
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: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
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.
PlanCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for receivingplan_update and plan_removed session updates.
Type: Object
Properties:
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
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: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
string
required
Human-readable description of what this task aims to accomplish.
required
The relative importance of this task.
Used to indicate which tasks are most critical to the overall goal.
required
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: Unionstring
High priority task - critical to the overall goal.
string
Medium priority task - important but not critical.
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: Unionstring
The task has not started yet.
string
The task is currently being worked on.
string
The task has been successfully completed.
PlanFile
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A plan represented by a file URI. Type: Object Properties: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
string
required
The URI of the file containing the plan.
PlanId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for a plan within a session. Type:string
PlanItems
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A plan represented as structured entries. Type: Object Properties: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
required
The list of tasks to be accomplished.When updating an item-based plan, the agent must send a complete list of all entries
with their current status. The client replaces that plan with each update.
PlanMarkdown
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A plan represented as raw markdown content. Type: Object Properties: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
string
required
Markdown content for the plan.
PlanRemoved
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Removal notice for a plan identified by ID. Type: Object Properties: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
PlanUpdate
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. A content update for a plan identified by ID. Type: Object Properties: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
required
The updated plan content.
PlanUpdateContent
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Updated content for a plan. Type: Unionobject
Structured plan entries.
object
A URI pointing to a file containing the plan.
object
Raw markdown content for the plan.
Position
A zero-based position in a text document. The meaning ofcharacter depends on the negotiated position encoding.
Type: Object
Properties:
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
uint32
required
Zero-based character offset (encoding-dependent).
- Minimum:
0
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: Unionstring
Character offsets count UTF-16 code units. This is the default.
string
Character offsets count Unicode code points.
string
Character offsets count UTF-8 code units (bytes).
PromptCapabilities
Prompt capabilities supported by the agent insession/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:
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
boolean
Agent supports
ContentBlock::Audio.- Default:
false
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
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)
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: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
required
Protocol currently used by this provider.
string
required
Base URL currently used by this provider.
ProviderId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for a configurable LLM provider. Type:string
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: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
ProviderCurrentConfig | null
Current effective non-secret routing config.
Null or omitted means provider is disabled.
required
Provider identifier, for example “main” or “openai”.
boolean
required
Whether this provider is mandatory and cannot be disabled via
providers/disable.
If true, clients must not call providers/disable for this provider ID.required
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. Supplying\{\} means the agent supports provider configuration methods.
Type: Object
Properties:
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: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
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: Unionnull
The JSON-RPC
null request id.int64
A numeric JSON-RPC request id.
string
A string JSON-RPC request id.
RequestPermissionOutcome
The outcome of a permission request. Type: Unionobject
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: Cancellationobject
The user selected one of the provided options.
ResourceLink
A resource that the server is capable of reading, included in a prompt or tool call result. Type: Object Properties: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 | null
Optional annotations that help clients decide how to display or route this content.
string | null
Optional human-readable details shown with this protocol object.
string | null
MIME type describing the encoded media payload.
string
required
Human-readable name shown for this protocol object.
integer | null
Optional size of the linked resource in bytes, if known.
string | null
Optional display title for end-user UI.
string
required
URI associated with this resource or media payload.
Role
The sender or recipient of messages and data in a conversation. Type: Unionstring
The assistant side of a conversation.
string
The user side of a conversation.
SelectedPermissionOutcome
The user selected one of the provided options. Type: Object Properties: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
required
The ID of the option the user selected.
SessionAdditionalDirectoriesCapabilities
Capabilities for additional session directories support. Supplying\{\} means the agent supports the additionalDirectories field on
supported session lifecycle requests. Agents that also support
session/list may return SessionInfo.additionalDirectories to report the
complete ordered additional-root list associated with a listed session.
Type: Object
Properties:
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 supportsession/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:
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
additionalDirectories on supported session lifecycle requests.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports additionalDirectories on
supported session lifecycle requests.Agents that also support session/list may return
SessionInfo.additionalDirectories to report the complete ordered
additional-root list associated with a listed session.SessionCloseCapabilities | null
Whether the agent supports
session/close.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports closing sessions.SessionDeleteCapabilities | null
Whether the agent supports
session/delete.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports deleting sessions from session/list.SessionForkCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Whether the agent supports
session/fork.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports forking sessions.SessionListCapabilities | null
Whether the agent supports
session/list.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports listing sessions.SessionResumeCapabilities | null
Whether the agent supports
session/resume.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports resuming sessions.SessionCloseCapabilities
Capabilities for thesession/close method.
Supplying \{\} means the agent supports closing sessions.
Type: Object
Properties:
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
A boolean on/off toggle session configuration option payload. Type: Object Properties: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: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
SessionConfigOptionCategory | null
Optional semantic category for this option (UX only).
string | null
Optional description for the Client to display to the user.
required
Unique identifier for the configuration option.
string
required
Human-readable label for the option.
object
Single-value selector (dropdown).
object
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
string
Session mode selector.
string
Model selector.
string
Model-related configuration parameter.
string
Thought/reasoning level selector.
string
Unknown / uncategorized selector.
SessionConfigOptionsCapabilities
Session configuration option capabilities supported by the client. Type: Object Properties: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 boolean session configuration options.Optional. Omitted or
null both mean the client does not advertise support.
Supplying \{\} means agents may include type: "boolean" entries in
configOptions, and the client may send session/set_config_option
requests with type: "boolean" and a boolean value.SessionConfigSelect
A single-value selector (dropdown) session configuration option payload. Type: Object Properties:required
The currently selected value.
required
The set of selectable options.
SessionConfigSelectGroup
A group of possible values for a session configuration option. Type: Object Properties: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
required
Unique identifier for this group.
string
required
Human-readable label for this group.
required
The set of option values in this group.
SessionConfigSelectOption
A possible value for a session configuration option. Type: Object Properties: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
string | null
Optional description for this option value.
string
required
Human-readable label for this option value.
required
Unique identifier for this option value.
SessionConfigSelectOptions
Possible values for a session configuration option. Type: Unionarray
A flat list of options with no grouping.
array
A list of options grouped under headers.
SessionConfigValueId
Unique identifier for a session configuration option value. Type:string
SessionDeleteCapabilities
Capabilities for thesession/delete method.
Supplying \{\} means the agent supports deleting sessions from session/list.
Type: Object
Properties:
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
SessionForkCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for thesession/fork method.
Supplying \{\} means the agent supports forking sessions.
Type: Object
Properties:
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: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
"string"[]
Additional workspace roots reported for this session. Each path must be absolute.When present, this is the complete ordered additional-root list reported
by the Agent. Omitted and empty values are equivalent: the response
reports no additional roots.
string
required
The working directory for this session. Must be an absolute path.
string | null
Human-readable title for the session
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: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
string | null
Human-readable title for the session. Set to null to clear.
string | null
ISO 8601 timestamp of last activity. Set to null to clear.
SessionListCapabilities
Capabilities for thesession/list method.
Supplying \{\} means the agent supports listing sessions.
Type: Object
Properties:
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: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
string | null
Optional human-readable details shown with this protocol object.
required
Stable identifier used to refer to this protocol object in later messages.
string
required
Human-readable name shown for this protocol object.
SessionModeId
Unique identifier for a Session Mode. Type:string
SessionModeState
The set of modes and the one currently active. Type: Object Properties: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
required
The set of modes that the Agent can operate in
required
The current mode the Agent is in.
SessionResumeCapabilities
Capabilities for thesession/resume method.
Supplying \{\} means the agent supports resuming sessions.
Type: Object
Properties:
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: Unionobject
A chunk of the user’s message being streamed.
object
A chunk of the agent’s response being streamed.
object
A chunk of the agent’s internal reasoning being streamed.
object
Notification that a new tool call has been initiated.
object
Update on the status or results of a tool call.
object
The agent’s execution plan for complex tasks.
See protocol docs: Agent Plan
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A content update for a plan identified by ID.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Removal notice for a plan identified by ID.
object
Available commands are ready or have changed
object
The current mode of the session has changedSee protocol docs: Session Modes
object
Session configuration options have been updated.
object
Session metadata has been updated (title, timestamps, custom metadata)
object
Context window and cost update for the session.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Advisory information for the user that is not part of session history.No Client capability is required. Clients that do not understand or
present notices may ignore them.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A context compaction has been created or updated.Agents MUST only send this update when the Client advertised
ClientSessionCapabilities::compaction.object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A content block appended to a context compaction’s retained summary.Agents MUST only send this update when the Client advertised
ClientSessionCapabilities::compaction.StopReason
Reasons why an agent stops processing a prompt turn. See protocol docs: Stop Reasons Type: Unionstring
The turn ended successfully.
string
The turn ended because the agent reached the maximum number of tokens.
string
The turn ended because the agent reached the maximum number of allowed agent
requests between user turns.
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.
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: Unionstring
Email address format.
string
URI format.
string
Date format (YYYY-MM-DD).
string
Date-time format (ISO 8601).
StringMultiSelectItems
String item schema for multi-select enum properties. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibility"string"[]
required
Allowed enum values.
StringPropertySchema
Schema for string properties in an elicitation form. Whenenum or oneOf is set, this represents a single-select enum
with "type": "string".
Type: Object
Properties:
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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilitystring | null
Default value.Optional. Omitted and
null are equivalent and mean no default value is provided.string | null
Human-readable description.Optional. Omitted and
null are equivalent and mean no description is provided."string"[] | null
Enum values for untitled single-select enums.
Optional. Omitted and
null are equivalent and mean no untitled single-select choices are
declared by enum.StringFormat | null
String format.Optional. Omitted and
null are equivalent and mean there is no format constraint.integer | null
Maximum string length.Optional. Omitted and
null are equivalent and mean there is no maximum length constraint.- Minimum:
0
integer | null
Minimum string length.Optional. Omitted and
null are equivalent and mean there is no minimum length constraint.- Minimum:
0
EnumOption[] | null
Titled enum options for titled single-select enums.
Optional. Omitted and
null are equivalent and mean no titled single-select choices are
declared by oneOf.string | null
Pattern the string must match.Optional. Omitted and
null are equivalent and mean there is no pattern constraint.string | null
Optional title for the property.Optional. Omitted and
null are equivalent and mean no title is provided.Terminal
Embed a terminal created withterminal/create by its id.
The terminal must be added before calling terminal/release.
See protocol docs: Terminal
Type: Object
Properties:
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
required
Identifier of the terminal instance to embed in the content stream.
TerminalExitStatus
Exit status of a terminal command. Type: Object Properties: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
integer | null
The process exit code (may be null if terminated by signal).
- Minimum:
0
string | null
The signal that terminated the process (may be null if exited normally).
TerminalId
Typed identifier used for terminal values on the wire. Type:string
TextContent
Text provided to or from an LLM. Type: Object Properties: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 | null
Optional annotations that help clients decide how to display or route this content.
string
required
Text payload carried by this content block.
TextDocumentContentChangeEvent
A content change event for a document. Whenrange is None, text is the full content of the document.
When range is Some, text replaces the given range.
Type: Object
Properties:
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
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: Unionstring
Client sends the entire file content on each change.
string
Client sends only the changed ranges.
TextResourceContents
Text-based resource contents. Type: Object Properties: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
string | null
MIME type describing the encoded media payload.
string
required
Text payload carried by this content block.
string
required
URI associated with this resource or media payload.
TitledMultiSelectItems
Items definition for titled multi-select enum properties. Type: Object Properties: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.Optional. Omitted and
null are equivalent and mean no metadata.See protocol docs: Extensibilityrequired
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: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.
string | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Programmatic name of the tool being invoked.This field is optional. Omitting it or sending
null both mean that no
tool name is available.object
Raw input parameters sent to the tool.
object
Raw output returned by the tool.
Current execution status of the tool call.
string
required
Human-readable title describing what the tool is doing.
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: Unionobject
Standard content block (text, images, resources).
object
File modification shown as a diff.
object
Embed a terminal created with
terminal/create by its id.The terminal must be added before calling terminal/release.See protocol docs: TerminalToolCallId
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: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
integer | null
Optional line number within the file.
- Minimum:
0
string
required
The absolute 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: Unionstring
The tool call hasn’t started running yet because the input is either streaming
or we’re awaiting approval.
string
The tool call is currently running.
string
The tool call completed successfully.
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: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
ToolCallContent[] | null
Replace the content collection.
ToolCallLocation[] | null
Replace the locations collection.
string | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Update the programmatic name of the tool being invoked.This field is optional. Omitting it or sending
null both mean that
the existing name is left unchanged.object
Update the raw input.
object
Update the raw output.
ToolCallStatus | null
Update the execution status.
string | null
Update the human-readable title.
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: Unionstring
Reading files or data.
string
Modifying files or content.
string
Removing files or data.
string
Moving or renaming files.
string
Searching for information.
string
Running commands or code.
string
Internal reasoning or planning.
string
Retrieving external data.
string
Switching the current session mode.
string
Other tool types (default).
UnstructuredCommandInput
All text that was typed after the command name is provided as input. Type: Object Properties: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
string
required
A hint to display when the input hasn’t been provided yet
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: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
integer | null
Total cache read tokens.
- Minimum:
0
integer | null
Total cache write tokens.
- Minimum:
0
uint64
required
Total input tokens across all turns.
- Minimum:
0
uint64
required
Total output tokens across all turns.
- Minimum:
0
integer | null
Total thought/reasoning tokens
- Minimum:
0
uint64
required
Sum of all token types across session.
- Minimum:
0
UsageUpdate
Context window and cost update for a session. Type: Object Properties: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
uint64
required
Total context window size in tokens.
- Minimum:
0
uint64
required
Tokens currently in context.
- Minimum:
0
WorkspaceFolder
A workspace folder. Type: Object Properties: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
string
required
The display name of the folder.
string
required
The URI of the folder.