claw-pk-cli
v0.1.23
Published
龙虾对战参赛端 CLI(send / watch / subscribe),与桥接服务端分离
Readme
claw-pk-cli
榫欒櫨瀵规垬 鍙傝禌锟? 鍛戒护琛岋細claw-pk send / watch / inbox / subscribe 绛夛拷?
涓嶅寘锟?*妗ユ帴鏈嶅姟绔紱璧涙柟妗ユ帴 URL* 锟?鍙傝禌瀵嗛挜 鐢变富鍔炴柟鎻愪緵锟?
CLI 鐢ㄦ埛鎬庝箞瀹夎
1. 鐜瑕佹眰
- 瀹夎 **[Node.js 20 鎴栦互涓奭(https://nodejs.org/)**锛圠TS 鍗冲彲锛夛拷?
- 瀹夎鍚庣粓绔噷搴旇兘鎵ц锛歚node -v
銆乣npm -v锟?
2. 涓ゆ潯鍛戒护锛堟帹鑽愶級锛氬叏灞€瀹夎 + 寮€锟?
锟?*鍏ㄥ眬瀹夎涓€娆★紝杩欐牱鏈満浠绘剰缁堢**銆佷互鍙婇渶瑕佽皟鐢ㄥ閮ㄥ懡浠ょ殑 OpenClaw / 榫欒櫨锛堜緷璧栫郴锟?PATH 閲岃兘瑙f瀽锟?claw-pk锛夐兘鍙互鐩存帴浣跨敤 **claw-pk**锛屾棤闇€鍐嶅啓涓€闀夸覆 `npx 鈥锟?
1锛夊畨锟?CLI锛堝彧闇€涓€娆★級
npm install -g claw-pk-cli2锛夊啓鍏ユ湰锟?match_id 骞跺惎鍔ㄨ疆锟?+ OpenClaw 杞彂
锟?浣犵殑姣旇禌id 鎹㈡垚鏈満 match_id锟?
claw-pk prod 浣犵殑姣旇禌id浣滅敤锛氬啓锟?**~/.claw-pk.json**锛屽苟鍚姩 **inbox --watch --openclaw**锛堣疆璇㈡ˉ鎺ャ€佹妸鐜鏈哄唴瀹硅浆鍙戝埌鏈満 OpenClaw Gateway锛夈€傚悓涓€鐢ㄦ埛涓嬮厤缃叡鐢紝鍏跺畠缁堢閲屽彲鐩存帴 claw-pk send "锟? 绛夛拷?
鍙拷?*锛氳嫢鏆傛椂涓嶆兂鍏ㄥ眬瀹夎锛屽彲鐢ㄤ竴锟?npx锛堜絾绯荤粺锟?*娌℃湁鐭懡锟?claw-pk锛孫penClaw 渚т篃涓嶄究鐩存帴锟?claw-pk锛夛細
npx --yes --package=claw-pk-cli claw-pk prod 浣犵殑姣旇禌id缁堢鐜锛歅owerShell銆乧md銆乄indows Terminal銆丟it Bash銆乂S Code / Cursor 闆嗘垚缁堢銆乵acOS / Linux 绛夛紝鍦ㄥ凡锟?Node 锟?PATH 姝e父鐨勫墠鎻愪笅鍛戒护鐩稿悓锟?WSL* 闇€锟?WSL 鍐呭崟鐙畨锟?Node 骞舵墽琛岋拷?
*榛樿绾﹀畾锛堥櫎闈炶嚜宸辨敼 claw-pk config锟?
| 锟?| 榛樿 |
|----|------|
| 妗ユ帴 server | http://43.139.194.139:8787/ |
| token | 鏈啓鍏ワ紙绌猴級锛屼笌銆屾ˉ鎺ユ湭锟?COMPETITOR_TOKEN銆嶇殑鏈湴鑱旇皟涓€鑷达紱姝e紡鐜锟?claw-pk config set token 鈥 |
| OpenClaw | 闇€鏈満瀛樺湪 **~/.openclaw/openclaw.json**锛堟垨 OPENCLAW_STATE_DIR锛夛紝锟?**--openclaw** 璇荤鍙d笌閴存潈 |
| Gateway user | 鏈寚瀹氭椂鑷姩 **claw_pk_`** |
浠呰疆锟?inbox锟?*锟?*杞彂 OpenClaw锛歚claw-pk prod 浣犵殑姣旇禌id --plain锟?
**宸插厠闅嗘湰浠撳簱锟?*锛堝厛 npm run build -w claw-pk-cli锛夛紝鍙湪浠撳簱鏍圭敤 npm 浼犲弬锛堟敞锟?--`锛夛細
npm run prod -- 浣犵殑姣旇禌idnpm *涓嶆敮锟? npm run prod:姣旇禌id 杩欑銆岃剼鏈悕閲屽甫 id銆嶇殑鍐欐硶锛涜嫢鍧氭寔涓€锟?npm 鍛戒护锛屽彲鍦ㄨ嚜宸遍」鐩殑 package.json 閲屽啓姝伙紝渚嬪 "prod:demo": "claw-pk prod demo"锟?
3. 涓€閿剼鏈紙鍙€夛細鍏嬮殕浠撳簱鍚庯級
- 缂栬緫鑴氭湰閲岀殑璧涙柟閰嶇疆锛堜笉瑕佺敤鐜鍙橀噺锛夛細
scripts/setup-claw-pk-cli.ps1涓殑$SCRIPT_SERVER/$SCRIPT_MATCH_ID/$SCRIPT_TOKENscripts/setup-claw-pk-cli.sh涓殑SCRIPT_SERVER/SCRIPT_MATCH_ID/SCRIPT_TOKEN
鐣欑┖鍒欒繍琛屾椂鍐嶄氦浜掕緭鍏ワ拷?
- 锟?*浠撳簱鏍圭洰锟? 鎵ц锟? *Windows锛圥owerShell锟?
# 鑻ユ彁绀虹姝㈣繍琛岃剼鏈紝鍏堟墽琛屼竴娆★細
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
.\scripts\setup-claw-pk-cli.ps1 -FromSource涓嶅啓 -FromSource 鏃惰蛋 **npm install -g claw-pk-cli**锛堥渶鍖呭凡鍙戝竷锟?npm锛夛拷?
Linux / macOS
chmod +x scripts/setup-claw-pk-cli.sh
./scripts/setup-claw-pk-cli.sh --from-source鍙€夊弬鏁帮細-SkipInstall / -SkipConfig锛圥owerShell锛夈€乣--skip-install/--skip-config`锛坆ash锛夛紝瑙佽剼鏈唴娉ㄩ噴锟?
4. 鎵嬪姩瀹夎 claw-pk锛堜换閫変竴绉嶏級
鏂瑰紡 A 锟?npm 鍏ㄥ眬瀹夎锛堝寘宸插彂甯冨埌 npm 鏃讹級
npm install -g claw-pk-cli*鏂瑰紡 B 锟?浠庢湰浠撳簱婧愮爜锛堝紑鍙戯拷?/ 璧涙柟鍙戝帇缂╁寘锟?
锟?claw_pk/packages/claw-pk-cli 鐩綍涓嬶細
npm install
npm run build
npm link涔嬪悗浠绘剰鐩綍鍙敤 claw-pk銆俉indows PowerShell 鍚岀悊锛堣矾寰勬敼鎴愪綘鐨勫厠闅嗙洰褰曪級锟?
鏂瑰紡 C 锟?鍙窇鏋勫缓浜х墿銆佷笉 link
node path\to\claw_pk\packages\claw-pk-cli\dist\index.js --help5. 楠岃瘉
claw-pk --help
claw-pk send -h
claw-pk inbox -h6. 杩炴帴璧涙柟妗ユ帴锛堝繀鍋氾紱鑻ュ凡锟?claw-pk prod / 涓€閿剼鏈彲閮ㄥ垎璺宠繃锟?
鐢ㄤ富鍔炴柟缁欑殑 妗ユ帴鏍瑰湴鍧€锟?*鏈満 match_id锟?*鍙傝禌锟?COMPETITOR_TOKEN锛屽啓鍏ユ湰鏈洪厤缃紙鎺ㄨ崘锛屼笉蹇呰鐜鍙橀噺锛夛細
claw-pk config set server "https://璧涙柟妗ユ帴鍦板潃"
claw-pk config set match-id "鏈満姣旇禌ID"
claw-pk config set token "鍙傝禌绔瘑锟?
claw-pk config show- Windows 閰嶇疆鏂囦欢涓€鑸湪 **
C:\Users\<鐢ㄦ埛锟?\.claw-pk.json**锟? - 鏌ョ湅缁濆璺緞锛歚claw-pk config path
锟? 涔熷彲鏀圭敤鐜鍙橀噺 **CLAW_PK_SERVER**锟?*CLAW_PK_MATCH_ID**锟?*CLAW_PK_TOKEN**锛堜紭鍏堢骇浣庝簬鍛戒护锟?-s/-m/-t`锛夛拷?
7. 鍙€夛細鏈満 OpenClaw锛堥緳铏撅級鑱斿姩
鑻ヨ鎶婄幆澧冩満缁忔ˉ鎺ヤ紶鏉ョ殑鍐呭 杞彂锟?OpenClaw锛岄渶鏈満宸插畨瑁呭苟閰嶇疆锟?OpenClaw锛屼笖瀛樺湪 ~/.openclaw/openclaw.json锛堟垨 OPENCLAW_STATE_DIR 涓嬬殑鍚屽悕鏂囦欢锛夛拷?
claw-pk inbox 锟?--openclaw 浼氬皾璇曚粠璇ユ枃浠惰锟?Gateway 绔彛锟?gateway.auth锛堟棤闇€鍐嶉厤 OPENCLAW_GATEWAY_TOKEN锛夈€傝瑙佷粨锟?**examples/openclaw-bridge-glue/README.md**锟?
8. 甯哥敤鍛戒护閫熻
claw-pk prod 浣犵殑姣旇禌id
claw-pk send "娉ㄥ叆缁欑幆澧冩満锟?assistant 鏂囨湰"
claw-pk inbox --watch --feed
claw-pk inbox --watch --feed --openclaw
claw-pk subscribe瀹屾暣鍗忚锟?*浠撳簱鏍圭洰锟?docs/protocol.md**锟?
config 瀛愬懡锟?
| 瀛愬懡锟?| 璇存槑 |
|--------|------|
| claw-pk config path | 鎵撳嵃閰嶇疆鏂囦欢缁濆璺緞 |
| claw-pk config show | 鏌ョ湅宸蹭繚瀛橀」锛坱oken 鑴辨晱锟?|
| claw-pk config set <key> <value> | key 锟?server | match-id | token |
| claw-pk config unset <key> | 鍒犻櫎涓€椤癸紱all 娓呯┖ |
**浼樺厛锟?*锛堜粠楂樺埌浣庯級锛氬懡浠よ -s / -m / -t 锟?鐜鍙橀噺 CLAW_PK_* 锟?~/.claw-pk.json 锟?鍐呯疆榛樿锛坄server榛樿http://43.139.194.139:8787/`锛夛拷?
鐜鍙橀噺锛堝彲閫夛級
| 鍙橀噺 | 璇存槑 |
|------|------|
| CLAW_PK_SERVER | 妗ユ帴锟?URL |
| CLAW_PK_MATCH_ID | 姣旇禌 ID |
| CLAW_PK_TOKEN | 涓庝富鍔炴柟 COMPETITOR_TOKEN 涓€锟?|
| CLAW_PK_ENV_KEY | 环境机 API Key(与 ENV_KEY_MATCH_MAP 一致),env-pull 连 inject-notify WebSocket 用 |
锟?JSON 鏂囦欢娉ㄥ叆锛堝惈 tool_calls锟?
claw-pk send -f ./examples/inject-tool-demo.json鎵ц claw-pk send -h 纭鏄惁鏀寔 -f/--file锛涜嫢鍏ㄥ眬鍖呰繃鏃э紝璇风敤鏂瑰紡 B 閲嶆柊 npm link 鎴栨敼锟?node .../dist/index.js锟?
OpenClaw(inbox)HTTP 转发
--feed:逐行输出 NDJSON。--openclaw:从~/.openclaw/openclaw.json读取网关端口与鉴权,并默认组装http://127.0.0.1:<port>。--openclaw-gateway/--openclaw-token:覆盖配置文件中的地址和凭证;将转发到POST <gateway>/v1/chat/completions。--webhook <url>:通用 HTTP webhook(与 OpenClaw 转发独立)。- 日志:stderr 输出
[inbox openclaw http] send|ok|fail,用于判断每条消息是否转发成功。 - 若误填
ws:///wss://,CLI 会直接报错提示:/v1/chat/completions是 HTTP 接口。 - 详见:
examples/openclaw-bridge-glue/README.md。
环境端:env-pull(推荐)
在 OpenClaw 里把 OpenAI 补全 Base URL 配成桥接(环境机 API Key),使 chat/completions 从注入队列取出参赛方 assistant。另开进程:
claw-pk env-pull:WebSocket 订阅桥接GET /v1/chat/env/inject-notify(环境机 API Key:--env-key/CLAW_PK_ENV_KEY/config set env-key),队列有待消费注入时再POST <gateway>/hooks/agent(需openclaw.json里hooks.enabled+hooks.token,OPENCLAW_HOOKS_TOKEN/--hooks-token)。断线会自动重连(--reconnect-ms)。- 可选
--hooks-interval:除事件驱动外再按固定间隔调 hooks(调试用);默认不轮询。 - 默认
--hooks-deliver关闭;可调--hooks-message等。 - 日志:
[env-pull] inject-notify|hooks send|ok|error(stderr)。
inject → openclaw system event(auto-send)
claw-pk auto-send 通过 WebSocket 订阅桥接(仅环境机 API Key),在收到参赛方 type: "inject" 且解析出有效 content / tool_calls 时,在本机执行:
openclaw system event --text "<文本>" --mode now
用于让 OpenClaw 侧拉取工具执行相关消息(不处理 env_chat_turn)。
特点:
- 只需 API Key(
--api-key或CLAW_PK_API_KEY/API_KEY/CLAW_PK_ENV_KEY),不需要match-id/token - 默认:
CLAW_PK_SERVER为http://43.139.194.139:8787/(与claw-pk config一致,可省略) - 本机需已安装 OpenClaw CLI,且
openclaw在PATH中(或通过OPENCLAW_BIN/OPENCLAW_CLI/--openclaw-bin指定) --text默认为pull the tool call event;可用环境变量OPENCLAW_SYSTEM_EVENT_TEXT或 CLI--event-text覆盖整段文本(无{{content}}模板)- 超时:默认 120 秒,可用
OPENCLAW_SYSTEM_EVENT_TIMEOUT_MS调整
若仍需要「打开网页、在输入框填字并点击发送」,请使用项目根目录的独立脚本 npx tsx scripts/web-send.ts(Playwright),与 auto-send 无关。
PowerShell 示例(Windows)
Set-Location "d:\develop\aiCode\claw_pk"
# 可省略,默认即为官方桥接
# $env:CLAW_PK_SERVER = "http://43.139.194.139:8787/"
$env:CLAW_PK_API_KEY = "你的环境机APIKey"
# 可选:覆盖默认 --text
# $env:OPENCLAW_SYSTEM_EVENT_TEXT = "pull the tool call event"
# 可选:openclaw 不在 PATH 时
# $env:OPENCLAW_BIN = "C:\path\to\openclaw.cmd"
claw-pk auto-send等价参数示例:
claw-pk auto-send --event-text "pull the tool call event" --openclaw-bin "openclaw"