This schema file is generated in this repository at
schema/v2/schema.unstable.json.
GitHub releases for this schema are not published yet.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.auth/login
Authenticates the client using the specified authentication method. Agents MUST support this method when theirinitialize response advertised
at least one valid authentication method. Clients MUST NOT call this method
when authMethods was omitted or empty.
Called when the agent requires authentication before allowing session creation.
The client provides the authentication method ID that was advertised during initialization.
After successful authentication, the client can proceed to create sessions with
new_session without receiving an auth_required error.
See protocol docs: Initialization
LoginAuthRequest
Request parameters for theauth/login method.
Specifies which authentication method to use.
Agents MUST support this method when their initialize response advertised
at least one valid authentication method. Clients MUST NOT call this method
when authMethods was omitted or empty.
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.
LoginAuthResponse
Response to theauth/login 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
auth/logout
Logs out of the current authenticated state. Agents MUST support this method when theirinitialize response advertised
at least one valid authentication method. Clients MUST NOT call this method
when authMethods was omitted or empty.
After a successful logout, authentication-gated requests require the client
to authenticate again. There is no guarantee about the behavior of already
running sessions.
LogoutAuthRequest
Request parameters for theauth/logout method.
Terminates the current authenticated session.
Agents MUST support this method when their initialize response advertised
at least one valid authentication method. Clients MUST NOT call this method
when authMethods was omitted or empty.
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
LogoutAuthResponse
Response to theauth/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
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.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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:
{}
required
Information about the implementation sending this initialize request.
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
Authentication methods supported by the agent.Optional. Omitted or empty means the agent does not advertise the
authentication method surface. Supplying one or more valid methods means
the agent MUST support both
auth/login and auth/logout.Capabilities supported by the agent.
- Default:
{}
required
Information about the implementation sending this initialize response.
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.
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
NesRejectReason | null
The reason for rejection.
required
The ID of the rejected suggestion.
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.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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 active work in a session. 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 - Report an idle
state_updatewithStopReason::Cancelledafter cancellation succeeds
CancelSessionNotification
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. The agent must cancel any ongoing work (as ifsession/cancel was called)
and then free up any resources associated with the session.
CloseSessionRequest
Request parameters for closing an active session. 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.
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 session.delete capability.
DeleteSessionRequest
Request parameters for deleting an existing session fromsession/list.
Only available if the Agent supports the session.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
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.
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
Initial session configuration options.
session/list
Lists existing sessions known to the agent. The agent should return metadata about sessions with optional filtering and pagination support.ListSessionsRequest
Request parameters for listing existing 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
SessionListCursor | null
Opaque cursor token from a previous response’s nextCursor field for cursor-based pagination
AbsolutePath | 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
SessionListCursor | 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/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
Additional workspace roots for this session. Each path must be absolute.These expand the session’s workspace scope without changing
cwd, which
remains the base for relative paths. When omitted or empty, no
additional roots are activated for the new session.required
The working directory for this session. Must be an absolute path.
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
Initial session configuration options.
Unique identifier for the created session.Used in all subsequent requests for this conversation.
session/prompt
Processes a user prompt within a session. This request accepts the prompt:- Receives user messages with optional context (files, images, etc.)
- Returns once the prompt is accepted
session/update notifications.
See protocol docs: Prompt Lifecycle
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 acknowledging that a user prompt was accepted. This response does not indicate that the agent has finished processing. Processing and completion are reported throughstate_update session updates.
See protocol docs: Prompt 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
session/resume
Resumes an existing session. The agent should resume the session context, allowing the conversation to continue. IfreplayFrom is set, the agent should replay
conversation history before responding.
ResumeSessionRequest
Request parameters for resuming an existing session. Resumes an existing session and optionally replays prior conversation history according toreplayFrom.
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
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.required
The working directory for this session. Must be an absolute path.
List of MCP servers to connect to for this session.
ReplayFrom | null
Inclusive cursor describing where conversation replay should begin.Optional. Omitted or
null both mean the Agent should resume without
replaying previous conversation history. Replay cursors are inclusive:
replay includes the position identified by the cursor. Supplying
\{ "type": "start" \} means the Agent should replay the whole
conversation before responding.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
Initial session configuration options.
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
SessionConfigValueId string value (type: "id").object
A boolean value (
type: "boolean").object
Custom or future session configuration option value payload.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
Client
Defines the interface that ACP-compliant clients must implement. Clients are typically code editors (IDEs, text editors) that provide the interface between users and AI agents. They manage the environment, handle user interactions, and control access to resources.elicitation/complete
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification that a URL-based elicitation has completed.CompleteElicitationNotification
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Notification sent by the agent when a URL-based elicitation is complete. Type: Object Properties:object | null
The _meta property is reserved by ACP to allow 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 elicitation that completed.
elicitation/create
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Requests structured user input via a form or URL.CreateElicitationRequest
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request from the agent to elicit structured user input. The agent sends this to the client to request information from the user, either via a form or by directing them to a URL. Elicitations are tied to a session (optionally a tool call) or a request. Type: Union Shared properties:object | null
The _meta property is reserved by ACP to allow 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 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
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Response from the client to an elicitation request. Type: Union Shared properties:object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.See protocol docs: Extensibility
object
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.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 an 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 active session work viasession/cancel, it MUST
respond to this request with RequestPermissionOutcome::Cancelled.
See protocol docs: Requesting Permission
RequestPermissionRequest
Request for user permission to proceed with an operation. 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
string | null
Optional human-readable explanation of why permission is needed.This text is specific to the permission prompt and does not update any
subject’s displayed content. Omitted or
null both mean no separate
permission description was provided.required
Available permission options for the user to choose from.
Must contain at least one option.
RequestPermissionSubject | null
Optional structured context about the operation requiring permission.Omitted or
null both mean no structured subject was provided.string
required
Human-readable title for the permission prompt.This title is specific to the permission prompt and does not update any
subject’s displayed title.
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 updates about session activity, including message updates, 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 reporting an idle state_update with the cancelled
stop reason.
See protocol docs: Agent Reports Output
UpdateSessionNotification
Notification containing a session update from the agent. Agents can send session updates at any point while the session exists. 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.
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
AbsolutePath
An absolute filesystem path used by the protocol. Type:string
AgentAuthCapabilities
Authentication-related extension capabilities supported by the agent. This object does not advertise support forauth/login or auth/logout.
Those methods are advertised by a non-empty authMethods list in the
initialize response.
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
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
AgentAuthCapabilities | null
Authentication-related extension capabilities supported by the agent.Optional. Omitted or
null both mean the agent does not advertise any
authentication-related extensions. This field does not advertise support
for auth/login or auth/logout; those methods are advertised by a
non-empty authMethods list in the initialize response.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.
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.SessionCapabilities | null
Session capabilities supported by the agent.Optional. Omitted or
null both mean the agent does not support the
session/* method surface. Supplying \{\} means the agent supports the
baseline session methods: session/new, session/prompt,
session/cancel, and session/update.AgentMessage
An agent message upsert. OnlyAgentMessage::message_id is required. content has patch semantics:
an omitted field leaves existing message content unchanged, null clears the
value, and a concrete array replaces the previous value. For a new
messageId, omitted fields use client defaults. content is replaced as a
whole array; send [] or null to clear it.
Message updates and chunks are applied in the order they are received. When
an agent_message update includes content, that array replaces any
content previously accumulated for the message, including content from
earlier chunks. Later chunks with the same messageId append to the current
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. Omitted means no metadata update;
null is an explicit clear signal.See protocol docs: ExtensibilityContentBlock[] | null
Complete replacement content for this message.
AgentThought
An agent thought or reasoning message upsert. OnlyAgentThought::message_id is required. content has patch semantics:
an omitted field leaves existing thought content unchanged, null clears the
value, and a concrete array replaces the previous value. For a new
messageId, omitted fields use client defaults. content is replaced as a
whole array; send [] or null to clear it.
Message updates and chunks are applied in the order they are received. When
an agent_thought update includes content, that array replaces any
content previously accumulated for the thought, including content from
earlier chunks. Later chunks with the same messageId append to the current
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. Omitted means no metadata update;
null is an explicit clear signal.See protocol docs: ExtensibilityContentBlock[] | null
Complete replacement content for this thought message.
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.Must be an RFC 3339 formatted string (e.g., “2025-01-12T15:00:58Z”).
- Format:
date-time
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.
- Content encoding:
base64
AuthCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Authentication capabilities supported by the client. Advertised during initialization to inform the agent which authentication method types the client can handle. This governs opt-in types that require additional client-side support. Type: Object Properties:object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.See protocol docs: Extensibility
TerminalAuthCapabilities | null
Whether the client supports
terminal authentication methods.Optional. Omitted or null both mean the client does not advertise support.
Supplying \{\} means the agent may include terminal entries in its authentication methods.AuthEnvVar
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Describes a single environment variable for anAuthMethodEnvVar authentication 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
string | null
Human-readable label for this variable, displayed in client UI.
string
required
The environment variable name (e.g.
"OPENAI_API_KEY").boolean
Whether this variable is optional.Defaults to
false.- Default:
false
boolean
Whether this value is a secret (e.g. API key, token).
Clients should use a password-style input for secret vars.Defaults to
true.- Default:
true
AuthMethod
Describes an available authentication method. Thetype field acts as the discriminator in the serialized JSON form.
Type: Union
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.User provides a key that the client passes to the agent as an environment variable.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Client runs an interactive terminal for the user to authenticate via a TUI.
object
Agent handles authentication itself.The
type discriminator value is agent.object
Custom or future authentication method.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 method type should preserve the raw
payload when storing, replaying, proxying, or forwarding initialization
data, and otherwise ignore the method or display it generically.AuthMethodAgent
Agent handles authentication itself. Thetype discriminator value is 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
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.
AuthMethodEnvVar
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Environment variable authentication method. The user provides credentials that the client passes to the agent as environment variables. Type: Object Properties:object | null
The _meta property is reserved by ACP to allow 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.
string | null
Optional link to a page where the user can obtain their credentials.
- Format:
uri
required
Unique identifier for this authentication method.
string
required
Human-readable name of the authentication method.
required
The environment variables the client should set.
AuthMethodId
Typed identifier used for auth method values on the wire. Type:string
AuthMethodTerminal
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Terminal-based authentication method. The client runs an interactive terminal for the user to authenticate via a TUI. Type: Object Properties:object | null
The _meta property is reserved by ACP to allow 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 pass when running the agent binary for terminal auth.
string | null
Optional description providing more details about this authentication method.
Additional environment variables to set when running the agent binary for terminal auth.
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. Type: Unionobject
All text that was typed after the command name is provided as input.
object
Custom or future command input specification.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 input type should preserve the raw
payload when storing, replaying, proxying, or forwarding command
metadata, and otherwise ignore the input specification or display the
command without structured input.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.
- Content encoding:
base64
string
required
URI associated with this resource or media payload.
- Format:
uri
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.See protocol docs: Extensibility
boolean | null
Default value.
string | null
Human-readable description.
string | null
Optional title for the property.
ClientCapabilities
Capabilities supported by the client. Advertised during initialization to inform the agent about available features and methods. See protocol docs: Client Capabilities Type: Object Properties:object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.See protocol docs: Extensibility
AuthCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Authentication capabilities supported by the client.
Determines which authentication method types the agent may include
in its
InitializeResponse.Optional. Omitted or null both mean the client does not advertise any
authentication-method extensions.ElicitationCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Elicitation capabilities supported by the client.
Determines which elicitation modes the agent may use.Optional. Omitted or
null both mean the client does not advertise
elicitation support.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.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.
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.CommandPermissionSubject
Permission request details for 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. Omitted and
null are equivalent and mean no subject metadata was provided.See protocol docs: Extensibilitystring
required
The command that would be run if permission is granted.
required
The absolute working directory for the command.
TerminalId | null
The associated terminal, when already known. Omitted and
null are equivalent.ToolCallId | null
The associated tool call, when known. Omitted and
null are equivalent.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 reported through
session/updatenotifications as message updates or streamed chunks - 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.object
Custom or future content block.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this content block type should preserve
the raw payload when storing, replaying, proxying, or forwarding content,
and otherwise ignore it or display it generically.ContentChunk
A streamed item of message 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. This field is chunk-scoped.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”).
- Pattern:
"^[A-Z]{3}$"
Diff
File changes produced by a tool call.changes is authoritative for affected absolute paths and operations.
patch optionally carries renderable text for some or all of those changes
and MUST be consistent with changes. Agents SHOULD provide patch whenever
feasible. Clients MUST handle diffs where patch is omitted or null.
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
required
Structured file changes described by this diff.Clients can use this field without parsing patch text to determine affected paths.
Renderable patch text for some or all of the structured changes.Agents SHOULD provide patch text whenever feasible. Omitted or
null
means no renderable patch text was provided.DiffChange
One file-level change described by aDiff.
Structured change metadata lets clients identify affected files and
operations without parsing the text patch.
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
DiffFileType | null
File content kind.Omitted or
null means the content kind is unknown.object
A file was added.
object
A file was deleted.
object
A file was modified in place.
object
A file was moved or renamed.
object
A file was copied.
object
Custom or future file operation.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.DiffFileType
Kind of file content represented by a diff change. Type: Unionstring
Text content.
string
Binary or otherwise non-text content.
string
Directory entry.
string
Symbolic link.
string
Custom or future file type.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.DiffPatch
Renderable patch text and its format. Type: Object Properties:required
Patch format. The only ACP-defined value is
git_patch.string
required
Patch text in the format named by
format.DiffPatchFormat
Text patch format used byDiffPatch.
Type: Union
string
One or more
diff --git sections in Git’s --patch (-p) text format.Paths MUST be absolute. Surrounding commit metadata and email envelopes
MUST NOT be included.string
Custom or future patch format.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.DiffPathChange
Operation metadata for add, delete, and modify changes. Type: Object Properties:required
Absolute path for the operation.
DiffPathPairChange
Operation metadata for move and copy changes. Type: Object Properties:required
Absolute path before the operation.
required
Absolute path after the operation.
ElicitationAcceptAction
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. The user accepted the elicitation and provided content. Type: Object Properties:object | null
The user-provided content, if any, as an object matching the requested schema.
ElicitationCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Elicitation capabilities supported by the client. Type: Object Properties:object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.See protocol docs: Extensibility
ElicitationFormCapabilities | null
Whether the client supports form-based elicitation.Optional. Omitted or
null both mean the client does not advertise support.
Supplying \{\} means the client supports form-based elicitation.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
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. 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.See protocol docs: Extensibility
ElicitationFormMode
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Form-based elicitation mode where the client renders a form from the provided schema. Type: Union Shared properties: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
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for an elicitation. Type:string
ElicitationPropertySchema
Property schema for elicitation form fields. Each variant corresponds to a JSON Schema"type" value.
Single-select enums use the String variant with enum or oneOf set.
Multi-select enums use the Array variant.
Type: Union
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
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Request-scoped elicitation, tied to a specific JSON-RPC request outside of a session (e.g., during auth/configuration phases before any session is started). Type: Object Properties: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.See protocol docs: Extensibility
string | null
Optional description of what this schema represents.
object
Property definitions (must be primitive types).
- Default:
{}
"string"[] | null
List of required property names.
string | null
Optional title for the schema.
Type discriminator. Always
"object".- Default:
"object"
ElicitationSchemaType
Type discriminator for elicitation schemas. Type: Unionstring
Object schema type.
ElicitationSessionScope
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Session-scoped elicitation, optionally tied to a specific tool call. 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.
ElicitationUrlCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. 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.See protocol docs: Extensibility
ElicitationUrlMode
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. URL-based elicitation mode where the client directs the user to a URL. Type: Union Shared properties: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.See protocol docs: Extensibility
string
required
The constant value for this option.
string | null
Human-readable description.
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
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.
Icon
An optionally-sized icon that can be displayed in a user interface. Type: Object Properties:"string"[] | null
Optional array of strings that specify sizes at which the icon can be used.
Each string should be in
WxH format (e.g., "48x48", "96x96") or
"any" for scalable formats like SVG.If not provided, the client should assume that the icon can be used at any size.string
required
A standard URI pointing to an icon resource.
- Format:
uri
IconTheme
Theme an icon is designed for. Type: Unionstring
Icon designed for light backgrounds.
string
Icon designed for dark backgrounds.
string
Custom or future icon theme.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.IdleStateUpdate
The agent is ready to process a new prompt. 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
StopReason | null
Indicates why foreground work stopped.Optional. Omitted or
null both mean the agent is not reporting a stop reason.
Agents SHOULD include this when the idle transition ends foreground work.UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Token usage for completed foreground work.Optional. Omitted or
null both mean the agent is not reporting token
usage for this state update.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.
- Content encoding:
base64
string | null
URI associated with this resource or media payload.
- Format:
uri
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.See protocol docs: Extensibility
integer | null
Default value.
string | null
Human-readable description.
integer | null
Maximum value (inclusive).
integer | null
Minimum value (inclusive).
string | null
Optional title for the property.
LlmProtocol
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Well-known API protocol identifiers for LLM providers. Agents and clients MUST handle unknown protocol identifiers gracefully. Protocol names beginning with_ are free for custom use, like other ACP extension methods.
Protocol names that do not begin with _ are reserved for the ACP spec.
Type: Union
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
Custom or future protocol.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.McpAcpCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for ACP MCP server transports. Supplying\{\} means the agent supports ACP MCP server transports.
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 for session lifecycle requests. 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
McpAcpCapabilities | null
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Agent supports
McpServer::Acp.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports ACP MCP server transports.McpHttpCapabilities | null
Agent supports
McpServer::Http.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports HTTP MCP server transports.McpStdioCapabilities | null
Agent supports
McpServer::Stdio.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports stdio MCP server transports.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
McpHttpCapabilities
Capabilities for HTTP MCP server transports. Supplying\{\} means the agent supports HTTP MCP server transports.
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
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 include
session.mcp.http.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 include
session.mcp.acp.
The MCP server is provided by an ACP component and communicates over the ACP channel.object
Stdio transport configurationOnly available when the Agent capabilities include
session.mcp.stdio.object
Custom or future MCP server transport configuration.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this transport should preserve the raw
payload when storing, replaying, proxying, or forwarding session setup
data, and otherwise ignore it or reject the server configuration.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
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.
- Format:
uri
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"[]
Command-line arguments to pass to the MCP server.
required
Absolute path to the MCP server executable.
Environment variables to set when launching the MCP server.
string
required
Human-readable name identifying this MCP server.
McpStdioCapabilities
Capabilities for stdio MCP server transports. Supplying\{\} means the agent supports stdio MCP server transports.
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
MediaType
An Internet media type identifying the format of protocol content. Type:string
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.See protocol docs: Extensibility
"string"[] | null
Default selected values.
string | null
Human-readable description.
required
The items definition describing allowed values.
integer | null
Maximum number of items to select.
- Minimum:
0
integer | null
Minimum number of items to select.
- Minimum:
0
string | null
Optional title for the property.
NesCapabilities
NES capabilities advertised by the agent during initialization. Supplying\{\} means the agent supports the NES method surface. Omitted or
null both mean the agent does not advertise support for nes/* 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
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.
- Format:
uri
NesDiagnosticSeverity
Severity of a diagnostic. Type: Unionstring
An error.
string
A warning.
string
An informational message.
string
A hint.
string
Custom or future diagnostic severity.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
- Format:
uri
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. Must contain at least one edit.
required
Unique identifier for accept/reject tracking.
string
required
The URI of the file to edit.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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.
- Format:
uri
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.
string
Custom or future rejection reason.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
- Format:
uri
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
string
required
The new name for the symbol.
required
Unique identifier for accept/reject tracking.
string
required
The file URI containing the symbol.
- Format:
uri
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
boolean | null
Whether
search is a regular expression. Defaults to false.string
required
The replacement text.
string
required
The text or pattern to find.
required
Unique identifier for accept/reject tracking.
string
required
The file URI to search within.
- Format:
uri
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.
object
Custom or future NES suggestion.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this suggestion kind should preserve
the raw payload when storing, replaying, proxying, or forwarding
suggestions, and otherwise ignore it or display it generically.NesSuggestionId
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Unique identifier for an NES 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).
string
Custom or future suggestion trigger kind.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
- Format:
uri
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
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.See protocol docs: Extensibility
number | null
Default value.
string | null
Human-readable description.
number | null
Maximum value (inclusive).
number | null
Minimum value (inclusive).
string | null
Optional title for the property.
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.
string
Custom or future permission option kind.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
string
Custom or future plan entry priority.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
string
The task was cancelled before it completed.
string
Custom or future plan entry status.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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.
- Format:
uri
PlanId
Unique identifier for a plan within a session. Type:string
PlanItems
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
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
Updated content for a plan. Type: Unionobject
Structured plan entries.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.A URI pointing to a file containing the plan.
object
UNSTABLEThis capability is not part of the spec yet, and may be removed or changed at any point.Raw markdown content for the plan.
object
Custom or future plan update content.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this content type should preserve the
raw payload when storing, replaying, proxying, or forwarding plans, and
otherwise ignore it or display it generically.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).
PromptAudioCapabilities
Capabilities for audio content in prompt requests. Supplying\{\} means the agent supports audio content in prompts.
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
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
PromptAudioCapabilities | null
Agent supports
ContentBlock::Audio.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports audio content in prompts.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.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports embedded context in prompts.PromptImageCapabilities | null
Agent supports
ContentBlock::Image.Optional. Omitted or null both mean the agent does not advertise support.
Supplying \{\} means the agent supports image content in prompts.PromptEmbeddedContextCapabilities
Capabilities for embedded context in prompt requests. Supplying\{\} means the agent supports embedded context in prompts.
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
PromptImageCapabilities
Capabilities for image content in prompt requests. Supplying\{\} means the agent supports image content in prompts.
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
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.
- Format:
uri
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
ReplayFrom
Inclusive cursor describing where replayed session history should begin. Replay includes the position identified by the cursor. Type: Unionobject
Replay the whole conversation from its first replayable entry.
object
Custom or future replay cursor.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this cursor should preserve the raw
payload when storing, replaying, proxying, or forwarding requests, and
otherwise reject the request rather than guessing where to replay from.ReplayFromStart
Inclusive replay cursor requesting replay from the start of the conversation. 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
Active session work was cancelled before the user responded.When a client sends a
session/cancel notification to cancel active
session work, 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.
object
Custom or future permission outcome.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 outcome MUST NOT treat it as approval.
They should preserve the raw payload when storing, replaying, proxying, or
forwarding permission responses, and otherwise fail or decline the
permission request according to policy.RequestPermissionSubject
The operation requiring permission. Type: Unionobject
Permission is requested before executing a tool call.
object
Permission is requested before running a command.
object
Custom or future permission subject.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 subject type should preserve the raw
payload when storing, replaying, proxying, or forwarding permission
requests, and otherwise display a generic permission prompt or decline it
according to policy.RequiresActionStateUpdate
Foreground work is blocked on user action. 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
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
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.
- Format:
uri
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.
string
Custom or future role.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.RunningStateUpdate
Foreground work is in progress. 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
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. Supplying\{\} means the agent supports the baseline session methods:
session/new, session/list, session/resume, session/close,
session/prompt, session/cancel, and session/update.
Agents that support sessions MAY support additional session methods,
prompt content types, and MCP transports by specifying additional
capabilities.
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 may return SessionInfo.additionalDirectories to report the
complete ordered additional-root list associated with a listed session.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.McpCapabilities | null
MCP capabilities supported by the agent for session lifecycle requests.Optional. Omitted or
null both mean the agent does not advertise MCP
server transport support for sessions.PromptCapabilities | null
Prompt capabilities supported by the agent in
session/prompt requests.Optional. Omitted or null both mean the agent does not advertise any
prompt extensions beyond the baseline text and resource-link content
required by session/prompt.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).
required
Unique identifier for the configuration option.
string | null
Optional description for the Client to display to the user.
string
required
Human-readable label for the option.
object
Single-value selector (dropdown).
object
Boolean on/off toggle.
object
Custom or future session configuration option payload.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 option type should preserve the raw
payload when storing, replaying, proxying, or forwarding configuration
data, and otherwise ignore the option or display it generically.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
Custom or future category.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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
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.
required
The working directory for this session. Must be an absolute path.
string | null
Human-readable title for the session
string | null
RFC 3339 timestamp of last activity.
- Format:
date-time
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. Omitted fields leave the existing session info unchanged.null clears the
corresponding value.
Type: Object
Properties:
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Omitted means no metadata update;
null is an
explicit clear signal. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibilitystring | null
Human-readable title for the session. Set to null to clear.
string | null
RFC 3339 timestamp of last activity. Set to null to clear.
- Format:
date-time
SessionListCursor
An opaque cursor used to paginatesession/list results.
Type: string
SessionUpdate
Different types of updates that can be sent while a session exists. These updates report messages, progress, and other session activity. See protocol docs: Agent Reports Output Type: Unionobject
A chunk of the user’s message being streamed.
object
A user message has been created or updated.Agents can send this when they accept or replay a user message. When a
client receives another
user_message update with the same messageId,
fields in the new update patch the previous fields for that message.object
A chunk of the agent’s response being streamed.
object
An agent message has been created or updated.Agents can send this in addition to streamed chunks. When a client
receives another
agent_message update with the same messageId,
fields in the new update patch the previous fields for that message.object
A chunk of the agent’s internal reasoning being streamed.
object
An agent thought or reasoning message has been created or updated.Agents can send this in addition to streamed chunks. When a client
receives another
agent_thought update with the same messageId,
fields in the new update patch the previous fields for that message.object
The state of the agent’s foreground work has changed.
object
A chunk of tool-call content being streamed.
object
A tool call has been created or updated.
object
An agent-owned terminal has been created or updated.
object
A chunk of bytes appended to an agent-owned terminal’s output.
object
A content update for a plan identified by ID.
See protocol docs: Agent Plan
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
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
Custom or future session update.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this update type should preserve the
raw payload when storing, replaying, proxying, or forwarding session
history, and otherwise ignore it or display it generically.StateUpdate
The state of the agent’s foreground work has changed. Background activity can continue and emit othersession/update notifications
while idle. Those notifications do not change this state.
Type: Union
object
Foreground work is in progress.
object
The agent is ready to process a new prompt.
object
Foreground work is blocked on user action.
object
Custom or future session state.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.StopReason
Reasons why an agent stops active session work. See protocol docs: Stop Reasons Type: Unionstring
The active work ended successfully.
string
The active work ended because the agent reached the maximum number of tokens.
string
The active work ended because the agent reached the maximum number of allowed
agent requests before returning idle.
string
The active work 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
Active session work was cancelled by the client via
session/cancel.Agents should report this stop reason on an idle state_update session update
when cancellation succeeds, even if cancellation causes exceptions in
underlying operations.string
Custom or future stop reason.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.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 (RFC 3339).
string
Custom or future string format.Unknown formats are preserved. Implementations that do not understand a
format should treat it as an annotation rather than rejecting the schema.
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.See protocol docs: Extensibility
"string"[]
required
Allowed enum values. Must contain at least one value.
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.See protocol docs: Extensibility
string | null
Default value.
string | null
Human-readable description.
"string"[] | null
Enum values for untitled single-select enums.
Must contain at least one value when present.
StringFormat | null
String format.
integer | null
Maximum string length.
- Minimum:
0
integer | null
Minimum string length.
- Minimum:
0
EnumOption[] | null
Titled enum options for titled single-select enums.
Must contain at least one option when present.
string | null
Pattern the string must match.
- Format:
regex
string | null
Optional title for the property.
Terminal
A display-only reference to an agent-owned terminal. Terminal state and output are delivered separately throughTerminalUpdate and TerminalOutputChunk.
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. This metadata is scoped to the content reference. Omitted
and
null are equivalent and mean no item metadata was provided.See protocol docs: Extensibilityrequired
The ID of the terminal to display.
TerminalAuthCapabilities
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Capabilities for terminal authentication methods. Supplying\{\} means the client supports terminal authentication 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
TerminalExitStatus
Exit information for an agent-owned terminal. The presence of this object marks the terminal as exited, even when neither an exit code nor a signal is known. 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. This metadata is scoped to the exit information. Omitted
and
null are equivalent and mean no exit metadata was provided.See protocol docs: Extensibilityinteger | null
Process exit code, when known. Omitted and
null are equivalent.- Minimum:
0
string | null
Signal that terminated the process, when known.Agents should use the conventional platform signal name. POSIX examples
include
SIGTERM, SIGKILL, and SIGINT. Other platforms may use a
platform-specific name. Omitted and null are equivalent.TerminalId
Unique identifier for an agent-owned terminal within a session. Type:string
TerminalOutput
An authoritative replacement snapshot of terminal output bytes. 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. This metadata is scoped to the replacement snapshot. Omitted
and
null are equivalent and mean no snapshot metadata was provided.See protocol docs: Extensibilitystring
required
Base64-encoded replacement terminal output bytes.
- Content encoding:
base64
TerminalOutputChunk
A chunk of bytes appended to an agent-owned terminal’s 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. This field is chunk-scoped. Omitted and
null are
equivalent and mean no chunk metadata was provided.See protocol docs: Extensibilitystring
required
Independently base64-encoded terminal output bytes.
- Content encoding:
base64
required
The terminal receiving these bytes.
TerminalUpdate
An upsert for the stored state of an agent-owned terminal. OnlyTerminalUpdate::terminal_id is required. Other fields have patch
semantics: omitted fields leave the stored value unchanged, null clears
it, and concrete values replace it. When the terminal ID is new, omitted
fields start unknown.
Type: Object
Properties:
object | null
The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Omitted means no metadata update;
null is an
explicit clear signal. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: Extensibilitystring | null
The command being run.
AbsolutePath | null
The absolute working directory of the command.
TerminalExitStatus | null
Exit information. A concrete object marks the terminal as exited.
TerminalOutput | null
An authoritative replacement snapshot of terminal output bytes.
required
Unique identifier for this terminal within the session.
TextCommandInput
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
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
required
Text payload carried by this content block.
string
required
URI associated with this resource or media payload.
- Format:
uri
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.See protocol docs: Extensibility
required
Titled enum options. Must contain at least one option.
ToolCallContent
Content produced by a tool call. Tool calls can produce different types of content including standard content blocks (text, images), file diffs, or display-only terminals. See protocol docs: Content Type: Unionobject
Standard content block (text, images, resources).
object
File modification shown as a diff.
object
A display-only reference to an agent-owned terminal.
object
Custom or future tool call content.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Receivers that do not understand this content type should preserve the
raw payload when storing, replaying, proxying, or forwarding tool call
output, and otherwise ignore it or display it generically.ToolCallContentChunk
A streamed item of tool-call content. Tool-call content chunks append oneToolCallContent item to the current
content for the matching ToolCallId. Agents can use
ToolCallUpdate::content when they need to replace the whole content
collection instead.
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. This field is chunk-scoped.See protocol docs: Extensibility
required
A single item of content produced by the tool call.
required
The ID of the tool call this content belongs to.
ToolCallId
Unique identifier for a tool call within a session. Type:string
ToolCallLocation
A file location being accessed or modified by a tool. Enables clients to implement “follow-along” features that track which files the agent is working with in real-time. See protocol docs: Following the Agent Type: Object Properties:object | null
The _meta property is reserved by ACP to allow 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
required
The absolute file path being accessed or modified.
ToolCallPermissionSubject
Permission request details for a tool call. Type: Object Properties:required
Details about the tool call requiring permission.
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.
string
The tool call was cancelled before it completed.
string
Custom or future tool call status.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.ToolCallUpdate
Represents an upsert for 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. OnlyToolCallUpdate::tool_call_id is required. Other fields have patch semantics:
omitted fields leave the existing tool call value unchanged, null clears or
unsets the value, and concrete values replace the previous value. For
collection fields, concrete arrays replace the previous collection, and both
null and [] clear the collection. When a client receives a tool call ID it
has not seen before, omitted fields use client defaults.
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. Omitted means no metadata update;
null is an
explicit clear signal. Implementations MUST NOT make assumptions about values at these keys.See protocol docs: ExtensibilityToolCallContent[] | null
Content produced by the tool call.
The category of tool being invoked.
Helps clients choose appropriate icons and UI treatment.
ToolCallLocation[] | null
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 and has patch semantics. Omission means no
change,
null clears the name, and a string replaces it. For a tool
call ID the client has not seen before, omission or null means that no
tool name is available.object
Raw input parameters sent to the tool.
object
Raw output returned by the tool.
ToolCallStatus | null
Current execution status of the tool call.
string | null
Human-readable title describing what the tool is doing.
required
Unique identifier for this tool call within the session.
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).
string
Custom or future tool kind.Values beginning with
_ are reserved for implementation-specific
extensions. Unknown values that do not begin with _ are reserved for
future ACP variants.Usage
UNSTABLE This capability is not part of the spec yet, and may be removed or changed at any point. Token usage information for completed session work. 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.
- Minimum:
0
uint64
required
Total output tokens.
- 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
UserMessage
A user message upsert. OnlyUserMessage::message_id is required. content has patch semantics:
an omitted field leaves existing message content unchanged, null clears the
value, and a concrete array replaces the previous value. For a new
messageId, omitted fields use client defaults. content is replaced as a
whole array; send [] or null to clear it.
Message updates and chunks are applied in the order they are received. When
a user_message update includes content, that array replaces any content
previously accumulated for the message, including content from earlier
chunks. Later chunks with the same messageId append to the current
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. Omitted means no metadata update;
null is an explicit clear signal.See protocol docs: ExtensibilityContentBlock[] | null
Complete replacement content for this message.
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.
- Format:
uri