Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Run the Agent Client Protocol (ACP) bridge that talks to an OpenClaw Gateway.
This command speaks ACP over stdio for IDEs and forwards prompts to the Gateway over WebSocket. It keeps ACP sessions mapped to Gateway session keys.
openclaw acpIf you want an external MCP client to talk directly to OpenClaw channel
conversations instead of hosting an ACP harness session, use
openclaw mcp serve
This page is often confused with ACP harness sessions.
openclaw acpThis is different from ACP Agents, where OpenClaw runs an external harness such as Codex or Claude Code through
acpxQuick rule:
openclaw acp/acp spawn| ACP area | Status | Notes |
|---|---|---|
text initializetext newSessiontext prompttext cancel | Implemented | Core bridge flow over stdio to Gateway chat/send + abort. |
text listSessions | Implemented | Session list works against Gateway session state; commands are advertised via text available_commands_update |
text loadSession | Partial | Rebinds the ACP session to a Gateway session key and replays stored user/assistant text history. Tool/system history is not reconstructed yet. |
| Prompt content ( text texttext resource | Partial | Text/resources are flattened into chat input; images become Gateway attachments. |
| Session modes | Partial | text session/set_mode |
| Session info and usage updates | Partial | The bridge emits text session_info_updatetext usage_update |
| Tool streaming | Partial | text tool_calltext tool_call_update |
| Per-session MCP servers ( text mcpServers | Unsupported | Bridge mode rejects per-session MCP server requests. Configure MCP on the OpenClaw gateway or agent instead. |
| Client filesystem methods ( text fs/read_text_filetext fs/write_text_file | Unsupported | The bridge does not call ACP client filesystem methods. |
| Client terminal methods ( text terminal/* | Unsupported | The bridge does not create ACP client terminals or stream terminal ids through tool calls. |
| Session plans / thought streaming | Unsupported | The bridge currently emits output text and tool status, not ACP plan or thought updates. |
loadSessionacp:<uuid>session_info_updateusage_updatebashopenclaw acp # Remote Gateway openclaw acp --url wss://gateway-host:18789 --token <token> # Remote Gateway (token from file) openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token # Attach to an existing session key openclaw acp --session agent:main:main # Attach by label (must already exist) openclaw acp --session-label "support inbox" # Reset the session key before the first prompt openclaw acp --session agent:main:main --reset-session
Use the built-in ACP client to sanity-check the bridge without an IDE. It spawns the ACP bridge and lets you type prompts interactively.
bashopenclaw acp client # Point the spawned bridge at a remote Gateway openclaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token # Override the server command (default: openclaw) openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://127.0.0.1:19001
Permission model (client debug mode):
read--cwdreadsearchweb_searchmemory_searchtoolCall.kindacpxplugins.entries.acpx.config.permissionMode=approve-allUse ACP when an IDE (or other client) speaks Agent Client Protocol and you want it to drive an OpenClaw Gateway session.
openclaw acpExample config (persisted):
bashopenclaw config set gateway.remote.url wss://gateway-host:18789 openclaw config set gateway.remote.token <token>
Example direct run (no config write):
bashopenclaw acp --url wss://gateway-host:18789 --token <token> # preferred for local process safety openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
ACP does not pick agents directly. It routes by the Gateway session key.
Use agent-scoped session keys to target a specific agent:
bashopenclaw acp --session agent:main:main openclaw acp --session agent:design:main openclaw acp --session agent:qa:bug-123
Each ACP session maps to a single Gateway session key. One agent can have many sessions; ACP defaults to an isolated
acp:<uuid>Per-session
mcpServersnewSessionloadSessionIf you want ACPX-backed sessions to see OpenClaw plugin tools or selected built-in tools such as
cronmcpServersacpxIf you want a coding agent such as Codex or Claude Code to talk to your OpenClaw bot over ACP, use
acpxopenclawTypical flow:
acpx openclawopenclaw acpExamples:
bash# One-shot request into your default OpenClaw ACP session acpx openclaw exec "Summarize the active OpenClaw session state." # Persistent named session for follow-up turns acpx openclaw sessions ensure --name codex-bridge acpx openclaw -s codex-bridge --cwd /path/to/repo \ "Ask my OpenClaw work agent for recent context relevant to this repo."
If you want
acpx openclawopenclaw~/.acpx/config.jsonjson{ "agents": { "openclaw": { "command": "env OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 openclaw acp --url ws://127.0.0.1:18789 --token-file ~/.openclaw/gateway.token --session agent:main:main" } } }
For a repo-local OpenClaw checkout, use the direct CLI entrypoint instead of the dev runner so the ACP stream stays clean. For example:
bashenv OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 node openclaw.mjs acp ...
This is the easiest way to let Codex, Claude Code, or another ACP-aware client pull contextual information from an OpenClaw agent without scraping a terminal.
Add a custom ACP agent in
~/.config/zed/settings.jsonjson{ "agent_servers": { "OpenClaw ACP": { "type": "custom", "command": "openclaw", "args": ["acp"], "env": {} } } }
To target a specific Gateway or agent:
json{ "agent_servers": { "OpenClaw ACP": { "type": "custom", "command": "openclaw", "args": [ "acp", "--url", "wss://gateway-host:18789", "--token", "<token>", "--session", "agent:design:main" ], "env": {} } } }
In Zed, open the Agent panel and select “OpenClaw ACP” to start a thread.
By default, ACP sessions get an isolated Gateway session key with an
acp:--session <key>--session-label <label>--reset-sessionIf your ACP client supports metadata, you can override per session:
json{ "_meta": { "sessionKey": "agent:main:main", "sessionLabel": "support inbox", "resetSession": true } }
Learn more about session keys at /concepts/session.
--url <url>--token <token>--token-file <path>--password <password>--password-file <path>--session <key>--session-label <label>--require-existing--reset-session--no-prefix-cwd--provenance <off|meta|meta+receipt>--verbose, -vSecurity note:
--token--password--token-file--password-fileOPENCLAW_GATEWAY_TOKENOPENCLAW_GATEWAY_PASSWORDOPENCLAW_GATEWAY_*gateway.auth.*gateway.remote.*gateway.auth.*gateway.remote.*--url--token--passwordOPENCLAW_SHELL=acpopenclaw acp clientOPENCLAW_SHELL=acp-clientacp client--cwd <dir>--server <command>openclaw--server-args <args...>--server-verbose--verbose, -v© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine