What is ACP?
The Agent Client Protocol (ACP) is Routa’s unified interface for communicating with AI coding agents. It provides a standardized JSON-RPC protocol that allows Routa to orchestrate multiple agent providers (OpenCode, Claude Code, Gemini, Copilot, etc.) through a consistent API.Architecture
Routa’s ACP implementation consists of several key components:Core Components
- ACP Session Manager (
src/core/acp/acp-session-manager.ts) - Manages active agent sessions - ACP Process Manager (
src/core/acp/acp-process-manager.ts) - Spawns and controls agent processes - Runtime Manager (
src/core/acp/runtime-manager.ts) - Manages Node.js and Python runtimes - Provider Registry (
src/core/acp/provider-registry.ts) - Registry of available agent providers - ACP Registry (
src/core/acp/acp-registry.ts) - Fetches agent definitions from the ACP Registry CDN
Provider Adapters
Routa uses provider-specific adapters to normalize different agent protocols:- Claude Code Adapter - Handles Claude’s stream-json protocol
- OpenCode Adapter - Standard ACP protocol implementation
- Standard ACP Adapter - Generic adapter for compliant agents
JSON-RPC Methods
Routa implements the following ACP methods:Session Management
initialize- Initialize the ACP connectionsession/new- Create a new agent sessionsession/prompt- Send a message to an agent sessionsession/cancel- Cancel an active sessionsession/load- Load a persisted sessionsession/set_mode- Change the session mode (e.g., orchestrator)
Provider Information
_providers/list- List available providers and their models
Event Streaming
Routa provides Server-Sent Events (SSE) for real-time session updates:- Tool calls and their execution status
- Agent messages and thoughts
- Session state changes
Supported Providers
Routa supports multiple ACP-compliant agents:| Provider | ID | Description |
|---|---|---|
| OpenCode | opencode | OpenCode AI coding agent |
| Claude Code | claude | Anthropic Claude Code (native ACP) |
| Gemini | gemini | Google Gemini CLI |
| Codex | codex | OpenAI Codex CLI |
| GitHub Copilot | copilot | GitHub Copilot CLI |
| Augment | auggie | Augment Code’s AI agent |
| Kimi | kimi | Moonshot AI’s Kimi CLI |
| Kiro | kiro | Amazon Kiro AI agent |
Usage Example
Creating an ACP Session
Using the JSON-RPC API
Next Steps
- Runtime Management - Managing Node.js and Python runtimes
- ACP Registry - Using the ACP agent registry
- Installing Agents - Installing and configuring agents