Skip to main content
The ACP Dart SDK provides comprehensive support for the Agent Client Protocol, tracking both stable and unstable protocol surfaces explicitly.

Stable Features

All ACP stable protocol features are fully supported and production-ready.

Agent Methods

Methods that clients can call on agents:
MethodStatusDescription
initialize✅ SupportedEstablishes connection and negotiates protocol capabilities
authenticate✅ SupportedAuthenticates the client using specified authentication method
session/new✅ SupportedCreates a new conversation session
session/load✅ SupportedLoads an existing session to resume conversation
session/prompt✅ SupportedProcesses a user prompt within a session
session/cancel✅ SupportedCancels ongoing operations for a session
session/set_mode✅ SupportedSets the operational mode for a session
session/set_config_option✅ SupportedSets the current value for a session configuration option

Client Methods

Methods that agents can call on clients:
MethodStatusDescription
fs/read_text_file✅ SupportedReads content from a text file
fs/write_text_file✅ SupportedWrites content to a text file
session/request_permission✅ SupportedRequests user permission for tool call operations
session/update✅ SupportedSends session update notifications to the client

Terminal Methods

Methods for terminal management:
MethodStatusDescription
terminal/create✅ SupportedCreates a new terminal and executes a command
terminal/output✅ SupportedGets the current output and exit status
terminal/wait_for_exit✅ SupportedWaits for terminal command to exit
terminal/kill✅ SupportedKills a terminal command
terminal/release✅ SupportedReleases terminal and frees resources

Protocol Notifications

NotificationStatusDescription
$/cancel_request✅ SupportedProtocol-level cancellation of specific JSON-RPC requests

Session Updates

All stable session update variants are supported:

Content Updates

  • user_message_chunk
  • agent_message_chunk
  • agent_thought_chunk

Tool Updates

  • tool_call
  • tool_call_update

Planning Updates

  • plan
  • available_commands_update

State Updates

  • current_mode_update
  • config_option_update

Unstable Features

Unstable features are not part of the official ACP specification yet and may be removed or changed at any point.

Unstable Agent Methods

MethodStatusDescription
session/list✅ SupportedLists existing sessions from the agent
session/fork✅ SupportedForks an existing session to create a new independent session
session/resume✅ SupportedResumes an existing session without replaying messages
session/set_model✅ SupportedSelects the model for a given session

Unstable Session Updates

Additional update variants implemented for parity tracking:
  • session_info_update - Updates to session metadata (title, timestamp)
  • usage_update - Token usage and cost information

Known Limitations

The following filesystem operations are not currently supported:
  • File deletion operations
  • File move/rename operations
  • Directory creation (mkdir)
  • Directory listing operations
Only fs/read_text_file and fs/write_text_file from the ACP stable surface are implemented.
The SDK supports extension methods and notifications (method names prefixed with _).Method names are passed through exactly as provided without rewriting.See the Extensions page for implementation details.

Protocol Version

The SDK implements ACP Protocol Version 0.1.0.

Method Coverage Summary

// From lib/src/schema.dart:
const agentMethods = {
  'authenticate': 'authenticate',
  'initialize': 'initialize',
  'modelSelect': 'session/set_model',
  'sessionFork': 'session/fork',
  'sessionList': 'session/list',
  'sessionSetConfigOption': 'session/set_config_option',
  'sessionCancel': 'session/cancel',
  'sessionLoad': 'session/load',
  'sessionNew': 'session/new',
  'sessionPrompt': 'session/prompt',
  'sessionResume': 'session/resume',
  'sessionSetMode': 'session/set_mode',
};

const clientMethods = {
  'fsReadTextFile': 'fs/read_text_file',
  'fsWriteTextFile': 'fs/write_text_file',
  'sessionRequestPermission': 'session/request_permission',
  'sessionUpdate': 'session/update',
  'terminalCreate': 'terminal/create',
  'terminalKill': 'terminal/kill',
  'terminalOutput': 'terminal/output',
  'terminalRelease': 'terminal/release',
  'terminalWaitForExit': 'terminal/wait_for_exit',
};

const protocolMethods = {
  'cancelRequest': r'$/cancel_request'
};

Verification Process

Before each release, the SDK undergoes a comprehensive parity verification process documented in parity_verification_checklist.md.

Next: Explore Stable Features

Learn how to use stable protocol features in your implementation

Build docs developers (and LLMs) love