2026-01-18 08:02:42 +00:00
|
|
|
|
---
|
|
|
|
|
|
summary: "Run the ACP bridge for IDE integrations"
|
|
|
|
|
|
read_when:
|
|
|
|
|
|
- Setting up ACP-based IDE integrations
|
|
|
|
|
|
- Debugging ACP session routing to the Gateway
|
2026-01-31 16:04:03 -05:00
|
|
|
|
title: "acp"
|
2026-01-18 08:02:42 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# acp
|
|
|
|
|
|
|
2026-01-30 03:15:10 +01:00
|
|
|
|
Run the ACP (Agent Client Protocol) bridge that talks to a OpenClaw Gateway.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
# Remote Gateway
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --url wss://gateway-host:18789 --token <token>
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
2026-02-19 15:33:25 +01:00
|
|
|
|
# Remote Gateway (token from file)
|
|
|
|
|
|
openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
|
|
|
|
|
|
2026-01-18 08:02:42 +00:00
|
|
|
|
# Attach to an existing session key
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --session agent:main:main
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
# Attach by label (must already exist)
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --session-label "support inbox"
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
# Reset the session key before the first prompt
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --session agent:main:main --reset-session
|
2026-01-18 08:02:42 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-18 08:27:27 +00:00
|
|
|
|
## ACP client (debug)
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp client
|
2026-01-18 08:27:27 +00:00
|
|
|
|
|
|
|
|
|
|
# Point the spawned bridge at a remote Gateway
|
2026-02-19 15:33:25 +01:00
|
|
|
|
openclaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
2026-01-18 08:27:27 +00:00
|
|
|
|
|
2026-01-30 03:15:10 +01:00
|
|
|
|
# Override the server command (default: openclaw)
|
|
|
|
|
|
openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://127.0.0.1:19001
|
2026-01-18 08:27:27 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-24 01:03:12 +00:00
|
|
|
|
Permission model (client debug mode):
|
|
|
|
|
|
|
|
|
|
|
|
- Auto-approval is allowlist-based and only applies to trusted core tool IDs.
|
|
|
|
|
|
- `read` auto-approval is scoped to the current working directory (`--cwd` when set).
|
|
|
|
|
|
- Unknown/non-core tool names, out-of-scope reads, and dangerous tools always require explicit prompt approval.
|
|
|
|
|
|
- Server-provided `toolCall.kind` is treated as untrusted metadata (not an authorization source).
|
|
|
|
|
|
|
2026-01-18 08:02:42 +00:00
|
|
|
|
## How to use this
|
|
|
|
|
|
|
|
|
|
|
|
Use ACP when an IDE (or other client) speaks Agent Client Protocol and you want
|
2026-01-30 03:15:10 +01:00
|
|
|
|
it to drive a OpenClaw Gateway session.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
1. Ensure the Gateway is running (local or remote).
|
|
|
|
|
|
2. Configure the Gateway target (config or flags).
|
2026-01-30 03:15:10 +01:00
|
|
|
|
3. Point your IDE to run `openclaw acp` over stdio.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
Example config (persisted):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw config set gateway.remote.url wss://gateway-host:18789
|
|
|
|
|
|
openclaw config set gateway.remote.token <token>
|
2026-01-18 08:02:42 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Example direct run (no config write):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --url wss://gateway-host:18789 --token <token>
|
2026-02-19 15:33:25 +01:00
|
|
|
|
# preferred for local process safety
|
|
|
|
|
|
openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
2026-01-18 08:02:42 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Selecting agents
|
|
|
|
|
|
|
|
|
|
|
|
ACP does not pick agents directly. It routes by the Gateway session key.
|
|
|
|
|
|
|
|
|
|
|
|
Use agent-scoped session keys to target a specific agent:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw acp --session agent:main:main
|
|
|
|
|
|
openclaw acp --session agent:design:main
|
|
|
|
|
|
openclaw acp --session agent:qa:bug-123
|
2026-01-18 08:02:42 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Each ACP session maps to a single Gateway session key. One agent can have many
|
|
|
|
|
|
sessions; ACP defaults to an isolated `acp:<uuid>` session unless you override
|
|
|
|
|
|
the key or label.
|
|
|
|
|
|
|
|
|
|
|
|
## Zed editor setup
|
|
|
|
|
|
|
|
|
|
|
|
Add a custom ACP agent in `~/.config/zed/settings.json` (or use Zed’s Settings UI):
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"agent_servers": {
|
2026-01-30 03:15:10 +01:00
|
|
|
|
"OpenClaw ACP": {
|
2026-01-18 08:02:42 +00:00
|
|
|
|
"type": "custom",
|
2026-01-30 03:15:10 +01:00
|
|
|
|
"command": "openclaw",
|
2026-01-18 08:02:42 +00:00
|
|
|
|
"args": ["acp"],
|
|
|
|
|
|
"env": {}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
To target a specific Gateway or agent:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"agent_servers": {
|
2026-01-30 03:15:10 +01:00
|
|
|
|
"OpenClaw ACP": {
|
2026-01-18 08:02:42 +00:00
|
|
|
|
"type": "custom",
|
2026-01-30 03:15:10 +01:00
|
|
|
|
"command": "openclaw",
|
2026-01-18 08:02:42 +00:00
|
|
|
|
"args": [
|
|
|
|
|
|
"acp",
|
2026-01-31 21:13:13 +09:00
|
|
|
|
"--url",
|
|
|
|
|
|
"wss://gateway-host:18789",
|
|
|
|
|
|
"--token",
|
|
|
|
|
|
"<token>",
|
|
|
|
|
|
"--session",
|
|
|
|
|
|
"agent:design:main"
|
2026-01-18 08:02:42 +00:00
|
|
|
|
],
|
|
|
|
|
|
"env": {}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-30 03:15:10 +01:00
|
|
|
|
In Zed, open the Agent panel and select “OpenClaw ACP” to start a thread.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
|
|
|
|
|
|
## Session mapping
|
|
|
|
|
|
|
|
|
|
|
|
By default, ACP sessions get an isolated Gateway session key with an `acp:` prefix.
|
|
|
|
|
|
To reuse a known session, pass a session key or label:
|
|
|
|
|
|
|
|
|
|
|
|
- `--session <key>`: use a specific Gateway session key.
|
|
|
|
|
|
- `--session-label <label>`: resolve an existing session by label.
|
|
|
|
|
|
- `--reset-session`: mint a fresh session id for that key (same key, new transcript).
|
|
|
|
|
|
|
|
|
|
|
|
If 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](/concepts/session).
|
|
|
|
|
|
|
|
|
|
|
|
## Options
|
|
|
|
|
|
|
|
|
|
|
|
- `--url <url>`: Gateway WebSocket URL (defaults to gateway.remote.url when configured).
|
|
|
|
|
|
- `--token <token>`: Gateway auth token.
|
2026-02-19 15:33:25 +01:00
|
|
|
|
- `--token-file <path>`: read Gateway auth token from file.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
- `--password <password>`: Gateway auth password.
|
2026-02-19 15:33:25 +01:00
|
|
|
|
- `--password-file <path>`: read Gateway auth password from file.
|
2026-01-18 08:02:42 +00:00
|
|
|
|
- `--session <key>`: default session key.
|
|
|
|
|
|
- `--session-label <label>`: default session label to resolve.
|
|
|
|
|
|
- `--require-existing`: fail if the session key/label does not exist.
|
|
|
|
|
|
- `--reset-session`: reset the session key before first use.
|
|
|
|
|
|
- `--no-prefix-cwd`: do not prefix prompts with the working directory.
|
|
|
|
|
|
- `--verbose, -v`: verbose logging to stderr.
|
2026-01-18 08:27:27 +00:00
|
|
|
|
|
2026-02-19 15:33:25 +01:00
|
|
|
|
Security note:
|
|
|
|
|
|
|
|
|
|
|
|
- `--token` and `--password` can be visible in local process listings on some systems.
|
|
|
|
|
|
- Prefer `--token-file`/`--password-file` or environment variables (`OPENCLAW_GATEWAY_TOKEN`, `OPENCLAW_GATEWAY_PASSWORD`).
|
|
|
|
|
|
|
2026-01-18 08:27:27 +00:00
|
|
|
|
### `acp client` options
|
|
|
|
|
|
|
|
|
|
|
|
- `--cwd <dir>`: working directory for the ACP session.
|
2026-01-30 03:15:10 +01:00
|
|
|
|
- `--server <command>`: ACP server command (default: `openclaw`).
|
2026-01-18 08:27:27 +00:00
|
|
|
|
- `--server-args <args...>`: extra arguments passed to the ACP server.
|
|
|
|
|
|
- `--server-verbose`: enable verbose logging on the ACP server.
|
|
|
|
|
|
- `--verbose, -v`: verbose client logging.
|