Zz Chat
by @badxtdss
爪爪/钳钳 — 手机直连 OpenClaw 聊天。触发词:钳钳、爪爪、钱钱、龙虾、聊天机器人、创建爪爪、安装钳钳、打开钳钳、zz-chat。
clawhub install zz-chat📖 About This Skill
name: zz-chat description: 爪爪/钳钳 — 手机直连 OpenClaw 聊天。触发词:钳钳、爪爪、钱钱、龙虾、聊天机器人、创建爪爪、安装钳钳、打开钳钳、zz-chat。 metadata: {"clawdbot":{"emoji":"🦞"}}
爪爪 🦞 — 手机直连 OpenClaw
架构
OC 聊天: 手机 ←WebSocket→ 用户的Worker ←→ bridge ←→ OpenClaw CLI
朋友互聊: 手机A ←WebSocket→ WorkerA ──HTTP──→ WorkerB ←WebSocket→ 手机B
注册发现: Worker ──注册──→ 中心Worker(ai0000.cn)←──查询── Worker
每个用户独立部署 Worker,用自己 Cloudflare 额度,互不影响。
执行流程(按顺序执行,每一步都做)
用户说"部署爪爪"或类似指令时,按以下步骤自动执行:
第一步:部署 Worker(用用户自己的 Cloudflare 账号)
安装 wrangler(如果没装):
export PATH="/usr/local/bin:$PATH"
which wrangler 2>/dev/null || npm install -g wrangler 2>&1
检查登录状态,未登录则弹出浏览器让用户授权:
wrangler auth whoami 2>&1
如果显示"Not logged in",执行登录(会自动弹浏览器,用户点同意即可):
wrangler login 2>&1
等用户在浏览器中点 "Allow" 授权
准备用户版 Worker 文件:
cd ~/.openclaw/workspace/openchat/simple
用用户版文件覆盖中心版
cp worker-user.js worker-user-deploy.js
cp wrangler-user.toml wrangler-user-deploy.toml
修改 wrangler-user-deploy.toml 中的 name,改成用户喜欢的名字(如 zz-chat-xxx):
sed -i '' "s/name = \"zz-proxy\"/name = \"zz-chat-$(whoami)\"/" wrangler-user-deploy.toml
部署:
cd ~/.openclaw/workspace/openchat/simple
export PATH="/usr/local/bin:$PATH"
wrangler deploy -c wrangler-user-deploy.toml 2>&1
记录 Worker URL:
WORKER_URL=$(wrangler deploy -c wrangler-user-deploy.toml 2>&1 | grep -o 'https://[^ ]*workers.dev' | head -1)
mkdir -p ~/.zz
echo "$WORKER_URL" > ~/.zz/worker_url
echo "Worker URL: $WORKER_URL"
第二步:注册获取全局 UID
WORKER_URL=$(cat ~/.zz/worker_url)
ZZ_ID=$(curl -s "$WORKER_URL/register" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
echo "$ZZ_ID" > ~/.zz/id
echo "编号: $ZZ_ID"
第三步:启动桥接 + 看门狗
先杀掉旧进程:
pkill -f "bridge.py" 2>/dev/null
pkill -f "watchdog.py" 2>/dev/null
sleep 1
复制桥接脚本:
BRIDGE_DIR=~/.openclaw/workspace/openchat/bridge
mkdir -p "$BRIDGE_DIR"
cp ~/.openclaw/skills/zz-chat/bridge.py "$BRIDGE_DIR/"
cp ~/.openclaw/skills/zz-chat/watchdog.py "$BRIDGE_DIR/"
启动看门狗(自动拉起 bridge):
WORKER_URL=$(cat ~/.zz/worker_url)
ZZ_ID=$(cat ~/.zz/id)
nohup python3 -u "$BRIDGE_DIR/watchdog.py" >> "$BRIDGE_DIR/watchdog.log" 2>&1 &
sleep 5
检查是否启动成功
ps aux | grep -E "(bridge|watchdog)" | grep -v grep
或配置 launchd 开机自启(macOS):
cat > ~/Library/LaunchAgents/com.zz-chat.bridge.plist << PLIST
Label com.zz-chat.bridge
ProgramArguments
/usr/local/bin/python3 -u
/Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.py
EnvironmentVariables
PATH /Users/$(whoami)/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
all_proxy ALL_PROXY
http_proxy HTTP_PROXY
https_proxy HTTPS_PROXY
RunAtLoad KeepAlive
StandardOutPath /Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.log
StandardErrorPath /Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.log
WorkingDirectory /Users/$(whoami)/.openclaw/workspace/openchat/bridge
PLIST
launchctl load ~/Library/LaunchAgents/com.zz-chat.bridge.plist
sleep 5
ps aux | grep -E "(bridge|watchdog)" | grep -v grep
第四步:生成链接 + 发送二维码
用 canvas 截图二维码发送给用户:
ZZ_ID=$(cat ~/.zz/id)
WORKER_URL=$(cat ~/.zz/worker_url)
PAGE_URL=https://badxtdss.github.io/zz-chat/?bridge=${ZZ_ID}&api=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$WORKER_URL', safe=''))")
保存 HTML 到 /tmp/zz-qr.html:
爪爪
🦞 爪爪
编号 {ZZ_ID}
手机扫码打开爪爪
消息通过你的 OpenClaw 处理
用 canvas 工具截图(action="present" → action="snapshot"),然后发图 + 文字消息:
✅ 爪爪已部署完成!🦞 你的编号: {ZZ_ID}
🔗 链接: {PAGE_URL}
📱 添加到桌面(必做):
1. 打开后点浏览器菜单 → 「访问电脑版」
2. 再点菜单 → 「添加到桌面」
微信/QQ: 右上角 ··· → 「添加到桌面」
Safari: 分享按钮 → 「添加到主屏幕」
3. 以后从桌面图标打开,体验最佳
消息路由
| 聊天类型 | 路径 | Worker | |---|---|---| | OC(OpenClaw) | 手机→Worker→bridge→CLI | 用户自己的 Worker | | 朋友互聊(在线) | 手机A→WorkerA→WorkerB→手机B | 两个用户的 Worker | | 朋友互聊(离线文字) | WorkerB 存 DO 持久存储,上线补发 | 接收方的 Worker | | 注册 | Worker→中心Worker(ai0000.cn) | 中心 Worker |
文件说明
| 文件 | 用途 |
|------|------|
| worker.js | 中心 Worker(ai0000.cn 用) |
| worker-user.js | 用户独立 Worker |
| wrangler.toml | 中心 Worker 配置 |
| wrangler-user.toml | 用户 Worker 配置模板 |
| bridge.py | 桥接脚本,支持 --worker 和 --uid |
| watchdog.py | 看门狗,监控 bridge |
| index.html | 手机端首页 |
| chat.html | 手机端 OC 聊天页(WebSocket) |
| bridge.js | Node.js 版桥接(Windows 兼容) |
| start-bridge.bat | Windows 启动脚本 |
桥接参数
bridge.py --worker # 指定 Worker 地址
bridge.py --uid # 直接指定编号
看门狗(watchdog.py)
launchd → watchdog.py → bridge.py
(系统级) (进程级) (实际桥接)
注意事项
?bridge= + ?api= 参数)才能进入网页openclaw agent CLI 处理~/.openclaw/workspace/openchat/bridge/watchdog.log~/.openclaw/workspace/openchat/bridge/bridge.log开发者
🦞 爪爪 by 秋风悠扬