acp_dart library

A Dart implementation of the Agent Client Protocol (ACP).

This library provides a complete implementation of the ACP specification, enabling communication between AI agents and client applications.

Key Components

Example Usage

See the examples directory for complete implementations of agents and clients.

Protocol Documentation

For detailed protocol information, see: https://agentclientprotocol.com/

Classes

AcpStream
Stream interface for ACP connections.
Agent
Abstract base class defining the Agent interface for ACP connections.
AgentAuthenticateResponse
AgentCapabilities
AgentCreateTerminalRequest
AgentExtensionMethodRequest
AgentExtensionMethodResponse
AgentExtensionNotification
AgentInitializeResponse
AgentKillTerminalRequest
AgentLoadSessionResponse
AgentMessageChunkSessionUpdate
AgentNewSessionResponse
AgentNotification
All possible notifications that an agent can send to a client.
AgentNotificationUnion
Base class for notifications sent by the agent.
AgentPromptResponse
AgentReadTextFileRequest
AgentReleaseTerminalRequest
AgentRequest
All possible requests that an agent can send to a client.
AgentRequestPermissionRequest
AgentRequestUnion
Base class for requests initiated by the agent (handled by the client).
AgentResponse
All possible responses that an agent can send to a client.
AgentResponseUnion
Base class for responses produced by the agent.
AgentSetSessionModelResponse
AgentSetSessionModeResponse
AgentSideConnection
An agent-side connection to a client.
AgentTerminalOutputRequest
AgentThoughtChunkSessionUpdate
AgentWaitForTerminalExitRequest
AgentWriteTextFileRequest
Annotations
Optional annotations for the client. The client can use annotations to inform how objects are used or displayed
AudioContentBlock
AuthenticateRequest
AuthenticateResponse
AuthMethod
AvailableCommand
Information about a command.
AvailableCommandInput
The input specification for a command.
AvailableCommandsUpdateSessionUpdate
BlobResourceContents
Binary resource contents.
CancelledOutcome
CancelNotification
Notification to cancel ongoing operations for a session.
Client
Abstract base class defining the Client interface for ACP connections.
ClientAuthenticateRequest
ClientCancelNotification
ClientCapabilities
ClientCreateTerminalResponse
ClientExtensionMethodRequest
ClientExtensionMethodResponse
ClientExtensionNotification
ClientInitializeRequest
ClientKillTerminalResponse
ClientLoadSessionRequest
ClientNewSessionRequest
ClientNotificationUnion
Notifications sent by the client to the agent.
ClientPromptRequest
ClientReadTextFileResponse
ClientReleaseTerminalResponse
ClientRequestPermissionResponse
ClientRequestUnion
Requests initiated by the client (handled by the agent).
ClientResponseUnion
Responses returned by the client to the agent.
ClientSetSessionModelRequest
ClientSetSessionModeRequest
ClientSideConnection
A client-side connection to an agent.
ClientTerminalOutputResponse
ClientWaitForTerminalExitResponse
ClientWriteTextFileResponse
Connection
Base connection class for managing JSON-RPC communication over ACP streams
ContentBlock
Content produced by a user or agent.
ContentToolCallContent
CreateTerminalRequest
CreateTerminalResponse
CurrentModeUpdateSessionUpdate
DiffToolCallContent
EmbeddedResource
EmbeddedResourceResource
Resource content that can be embedded in a message.
EnvVariable
ExtMethodRequest
ExtMethodResponse
ExtNotification
FileSystemCapability
HttpHeader
HttpMcpServer
ImageContentBlock
InitializeRequest
InitializeResponse
KillTerminalCommandRequest
KillTerminalCommandResponse
LoadSessionRequest
LoadSessionResponse
McpCapabilities
McpServerBase
Base class for all MCP Server definitions (HTTP, SSE, Stdio).
ModelInfo
NewSessionRequest
NewSessionResponse
PermissionOption
Plan
PlanEntry
A single entry in the execution plan.
PlanSessionUpdate
PromptCapabilities
PromptRequest
PromptResponse
ReadTextFileRequest
ReadTextFileResponse
ReleaseTerminalRequest
ReleaseTerminalResponse
RequestPermissionOutcome
RequestPermissionRequest
RequestPermissionResponse
ResourceContentBlock
ResourceLinkContentBlock
SelectedOutcome
SessionAgentNotification
SessionMode
SessionModelState
SessionModeState
SessionNotification
Notification containing a session update from the agent.
SessionUpdate
SetSessionModelRequest
SetSessionModelResponse
SetSessionModeRequest
SetSessionModeResponse
SseMcpServer
StdioMcpServer
TerminalExitStatus
TerminalHandle
A handle for managing terminal operations within a session.
TerminalOutputRequest
TerminalOutputResponse
TerminalToolCallContent
TextContentBlock
TextResourceContents
Text-based resource contents.
ToolCall
ToolCallContent
Content produced by a tool call.
ToolCallLocation
A file location being accessed or modified by a tool.
ToolCallSessionUpdate
ToolCallUpdate
ToolCallUpdateSessionUpdate
UnknownSessionUpdate
UnstructuredCommandInput
All text that was typed after the command name is provided as input.
UserMessageChunkSessionUpdate
WaitForTerminalExitRequest
WaitForTerminalExitResponse
WriteTextFileRequest
WriteTextFileResponse

Enums

PermissionOptionKind
PlanEntryPriority
PlanEntryStatus
Role
The sender or recipient of messages and data in a conversation.
StopReason
Reasons why an agent stops processing a prompt turn.
ToolCallStatus
Execution status of a tool call.
ToolKind
Categories of tools that can be invoked.

Extensions

AgentRequestLookup on Iterable<AgentRequestUnion>
Convenience helpers to map methods back to union factories.

Constants

agentMethods → const Map<String, String>
Protocol method constants for agent-side requests
clientMethods → const Map<String, String>
Protocol method constants for client-side requests

Functions

ndJsonStream(Stream<List<int>> input, StreamSink<List<int>> output) AcpStream
Creates an ACP Stream from a pair of newline-delimited JSON streams.

Exceptions / Errors

RequestError
Request error for ACP/JSON-RPC communication