Cli 导读

用 IDE 通过 ACP 连接 Gateway,别搞混成启动外部 Agent

`openclaw acp` 在 stdio 上启动一个 ACP 桥,让 IDE 或 ACP 客户端能把提示词通过 WebSocket 转发给 Gateway。最容易搞错的是:这不是用来启动 Codex 或 Claude 等外部 Agent 的——那是 `/acp spawn` 和 ACP Agents 页的事。先确认你的场景:客户端要连 OpenClaw 就走 `openclaw acp`;要让 OpenClaw 启动外部 Agent 就走 ACP Agents。

先讲这一页到底在解决什么

用 IDE 通过 ACP 连接 Gateway,别搞混成启动外部 Agent

`openclaw acp` 在 stdio 上启动一个 ACP 桥,让 IDE 或 ACP 客户端能把提示词通过 WebSocket 转发给 Gateway。最容易搞错的是:这不是用来启动 Codex 或 Claude 等外部 Agent 的——那是 `/acp spawn` 和 ACP Agents 页的事。先确认你的场景:客户端要连 OpenClaw 就走 `openclaw acp`;要让 OpenClaw 启动外部 Agent 就走 ACP Agents。

原文共 15 节,先看 Start Here 路径:/cli/acp 查看官方原文

第一站

🧵 先想画面:一边是小门,一边是大门,中间是桥

IDE 这边通常只会走标准输入输出,像在桥头递纸条。Gateway 这边用的是 WebSocket,像另一头的大门口有人接应。

🎹

stdio

像你把话写在小纸条上,从桥的一头递出去,再把回信接回来。

📡

Gateway WebSocket

像桥那头的总机房,负责真正跟 OpenClaw 里面的人对话。

🪪

session key

像每个人在桥上贴的名字牌。桥会把 ACP 会话和 Gateway 会话一一对上。

📌

一句话先记住

ACP 负责把外部客户端接到 Gateway,不负责自己变成一个完整编辑器。

第二站

🛠 它能做什么,先别背表格,先看它现在会干哪几件事

官方的兼容矩阵其实是在告诉你:桥已经能走了,但有些小路还没完全铺平。

✅ 已经会的

initializenewSessionpromptcancel 这些核心动作已经能跑。像桥已经能正常通车。

🗂 会话列表也行

listSessions 和 slash commands 已经能从 Gateway 的会话状态里拿到。像桥边的路牌已经能认。

🧩 还在补的

loadSession、图片、资源、工具流等功能部分支持,但还没完全长成最理想的样子。

🚫 暂时不做的

每个会话自己带 mcpServers、客户端文件系统方法、客户端终端方法、思考流,这些目前都不在桥上。

第三站

🎒 用法很简单:先把 Gateway 开着,再让 IDE 过桥

最普通的情况,就是在本地或者远端先把 Gateway 备好,然后让 `openclaw acp` 去接它。

openclaw acp

像桥本地模式。你把它叫起来,它就去找默认的 Gateway 口。

openclaw acp --url wss://gateway-host:18789 --token <token>

像你站在远处,手里拿着门牌和门票,准备跨到另一头的桥上。

--token-file

像把门票收在小盒子里,不直接摊在行李箱外面。更安全,也更适合长期用。

--session agent:main:main

像告诉桥:“今天我要去哪个工位、哪个抽屉。” 这样 ACP 会话就能对准指定 agent。

第四站

🧰 `acp client` 像一个小练习场,专门帮你试桥通不通

官方把 debug 客户端单独拿出来,是为了让你不用真开 IDE 也能检查桥有没有接好。

🧪

openclaw acp client

像打开一个小测试间,边敲边看桥有没有顺利连上。

🧵

--server-args ...

像告诉这个小测试间:“你别连本地默认桥,去连我指定的远端桥。”

🪄

--server "node"

像连桥的那位接线员也能换成别的执行器,不一定非得是默认那位。

🔐

权限模型

像练习场也有门卫。允许名单里的小动作自动放行,陌生动作还是要你点头。

第五站

🪑 选 agent 这件事,像选工位,不是桥自己替你决定

ACP 不会凭空替你挑一个 agent。它只是照着你给的 session key 走。

agent:main:main

像把你送到主工位的主抽屉。

agent:design:main

像把你改送到设计工位。桥不猜,只照路牌走。

--reset-session

像把同一个抽屉重新开一遍,旧里程不带着跑。适合想要干净新开的第一轮。

📌 一句话

ACP 只认会话钥匙,不替你猜“该去谁那儿”。

第六站

🧠 `acpx`、Zed、和直接命令行,都只是桥的不同坐法

官方后面把 IDE、`acpx`、Zed 都写进来,是在告诉你:桥本身不挑乘客,关键是乘客会不会说 ACP。

acpx openclaw exec ...

像再请一位会说 ACP 的小帮手坐上桥,直接去问你的 OpenClaw 代理。

openclaw acp 给 Zed

像给编辑器门口贴一张新牌子,让它知道该从哪座桥上去。

env OPENCLAW_HIDE_BANNER=1 ... node openclaw.mjs acp ...

像走近路时把迎宾横幅收起来,免得桥上全是装饰,影响干净的 ACP 传话。

🎈 一句话

这些工具不是桥本身,只是不同人坐桥的方式不同。

最后总结

🎈 把 `openclaw acp` 压成一句话

`openclaw acp` 就是一座把 ACP 客户端和 OpenClaw Gateway 接起来的桥:会话按钥匙走,消息按桥梁转,IDE、`acpx`、Zed 都只是从桥上过来的不同乘客。

如果你下一页只想继续看一页,我建议看 /cli/mcp。因为它和 ACP 很像,但乘客不一样,桥上说话的协议也不一样。