Skip to main content
Agent Client Protocol (ACP) sessions let OpenClaw run external coding harnesses (Claude Code, Cursor, Copilot, Droid, OpenClaw ACP, OpenCode, Gemini CLI, and other supported acpx harnesses) through an ACP backend plugin. Each spawn is tracked as a background task.
ACP is the external-harness path, not the default Codex path. The native Codex app-server plugin owns /codex ... controls and the default openai/gpt-* embedded runtime for agent turns. ACP owns /acp ... controls and sessions_spawn({ runtime: "acp" }) sessions.To let Codex or Claude Code connect as an external MCP client directly to existing OpenClaw channel conversations, use openclaw mcp serve instead of ACP.

Which page do I want?

ACP agents documentation pages

This page is an index. ACP agents is documented on seven pages, one per reader job. Open the page that matches your task.

ACP versus sub-agents

Use ACP when you want an external harness runtime. Use native Codex app-server for Codex conversation binding/control when the codex plugin is enabled. Use sub-agents when you want OpenClaw-native delegated runs. See also Sub-agents.

How ACP runs Claude Code

For Claude Code through ACP, the stack is:
  1. OpenClaw ACP session control plane.
  2. Official @openclaw/acpx runtime plugin.
  3. Claude ACP adapter.
  4. Claude-side runtime/session machinery.
ACP Claude is a harness session with ACP controls, session resume, background-task tracking, and optional conversation/thread binding. CLI backends are separate text-only local fallback runtimes - see CLI Backends. For operators, the practical rule is:
  • Want /acp spawn, bindable sessions, runtime controls, or persistent harness work? Use ACP.
  • Want simple local text fallback through the raw CLI? Use CLI backends.

acpx harness, plugin setup, and permissions

For acpx harness configuration (Claude Code / Codex / Gemini CLI aliases), the plugin-tools and OpenClaw-tools MCP bridges, and ACP permission modes, see ACP agents - setup.

Where each section moved

Every section heading from the previous single-page version keeps its anchor here, so an existing link such as /tools/acp-agents#persistent-channel-bindings still resolves. Each entry points at the page that now holds the content.