Skip to main content
ACP (Agent Client Protocol) enables external editors and IDEs to communicate with 0x0 using JSON-RPC over stdio.

What is ACP

ACP is a standardized protocol for editors to interact with AI coding agents. It handles session lifecycle, user prompts, tool execution, permissions, and real-time streaming — all through a structured message format over stdin/stdout. See the Agent Client Protocol specification for the full protocol definition.

Starting the ACP server

# Start in current directory
0x0 acp

# Start in a specific directory
0x0 acp --cwd /path/to/project
Network flags are also available: --port, --hostname, --mdns, --mdns-domain, --cors.

Protocol capabilities

The 0x0 ACP agent advertises these capabilities during initialization:
CapabilityDescription
loadSessionResume existing sessions
mcpMCP server support (HTTP and SSE transports)
prompt.embeddedContextAccept embedded context in prompts
prompt.imageAccept image attachments
session.forkFork sessions from a specific point
session.listList available sessions
session.resumeResume sessions without replaying history

Supported operations

Session management

OperationDescription
session/newCreate a new session with model and MCP configuration
session/loadLoad an existing session and replay message history
cancelAbort the current session operation
setSessionModeSwitch between agents (modes map to 0x0 agents)
unstable_listSessionsPaginated session listing
unstable_forkSessionFork a session
unstable_resumeSessionResume without history replay
unstable_setSessionModelChange the model for a session

Prompting

OperationDescription
session/promptSend a user message with text, images, resources, or resource links
Prompt content types: text, images (base64 or URL), resources (embedded data), and resource links (file paths).

Real-time events

The ACP server streams events to the client as the agent works:
EventDescription
agent_message_chunkIncremental text output
agent_thought_chunkReasoning/thinking blocks
tool_callTool invocation with arguments
tool_call_updateTool execution progress and results
planTODO list updates
usageToken usage and cost information

Permissions

When a tool call requires user approval, the ACP server sends a requestPermission to the client. The client responds with one of:
ResponseDescription
allow_onceAllow this single request
allow_alwaysAdd a permanent allow rule
reject_onceReject this request

IDE integration

Zed

Add to your Zed settings:
{
  "agent_servers": {
    "zeroxzero": {
      "command": "0x0",
      "args": ["acp"]
    }
  }
}

General integration

Any editor that implements the ACP client protocol can launch 0x0 as a subprocess:
0x0 acp --cwd /path/to/project
Communication happens over stdin (client to agent) and stdout (agent to client) using newline- delimited JSON-RPC messages.

See also