capabilities 是 agent 或脚本在做其他任何事之前先跑的那次握手。一次调用就能告诉调用方:它在和哪个 CLI 说话、这个 CLI 写出哪些契约 schema,以及哪些命令接受 --output json。它不需要项目、不需要会话,也不需要浏览器。
什么时候使用 capabilities
- agent 要开启一个会话,必须先知道该按哪些 schema 版本来解析。
- 脚本想用特性探测来判断是否支持
--output json,而不是靠版本号去猜。 - 你想确认一次
npx调用实际解析到的是哪个 CLI 构建。
用法
参数与 flag
这是唯一一个默认输出
json 的命令。握手本来就是给机器用的,所以机器格式才是默认值,--output pretty 反而是需要你显式选择的那个。
它返回什么
JSON 输出是一个 schema-1 信封(见 结果信封),它的value 带有五个字段:
outputJsonCommands 是从实时的命令注册信息里读出来的,从来不是手工维护的清单,所以它不可能和 CLI 实际接受的命令产生偏差。请把上面的例子当作示意,并解析真实返回的结果。
pretty 输出会把同样的信息打印成四行带标签的文本。两种格式的退出码都是 0。
典型的 agent 流程
- 运行
extension capabilities,确认envelopeSchema与readySchemaVersion都是你支持的版本。 - 开启会话:
extension dev --allow-control --output json。 - 用动作类命令来驱动它:
inspect、eval、storage、reload。

