Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Zz Chat

v1.0.1

爪爪/钳钳 — 手机直连 OpenClaw 聊天。触发词:钳钳、爪爪、钱钱、龙虾、聊天机器人、创建爪爪、安装钳钳、打开钳钳、zz-chat。

0· 133·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for badxtdss/zz-chat.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Zz Chat" (badxtdss/zz-chat) from ClawHub.
Skill page: https://clawhub.ai/badxtdss/zz-chat
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install zz-chat

ClawHub CLI

Package manager switcher

npx clawhub@latest install zz-chat
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
Name/description claim a mobile→OpenClaw chat bridge. The code and instructions match that purpose (deploy CF Worker, run a local bridge that calls the 'openclaw' CLI). However the skill does not declare key operational dependencies: wrangler (Cloudflare CLI) and the local openclaw binary are required but not listed in requires.env or required binaries. The runtime also relies on an external central service (https://ai0000.cn/zz/) for registration/relay which is not mentioned in the short description or metadata — surprising for users expecting direct peer-to-peer only.
!
Instruction Scope
SKILL.md instructs the agent (and user) to install wrangler (npm -g), run 'wrangler login' (browser OAuth into the user's Cloudflare account), deploy a Worker, write and copy files under ~/.openclaw and ~/.zz, start persistent background processes (nohup python watchdog.py), and optionally create a launchd plist for auto-start. It also performs network calls to several external endpoints (ai0000.cn, badxtdss.github.io, quickchart.io, api.qrserver.com). These actions go beyond a simple 'chat helper' note: they create on-disk artifacts, background services, and interact with third-party servers.
Install Mechanism
There is no formal install spec (instruction-only), which lowers packaged-install risk. But the runtime instructions copy provided scripts into user workspaces and ask to run npm -g wrangler (downloads from npm). The skill's files themselves are included in the package and will be written into user directories by the instructions. No opaque URL downloads are used in the install steps, but running npm install -g and launching scripts written into your home directory is an install-time action the user should review.
!
Credentials
The skill requests no declared env vars, yet runtime behavior requires credentials and access it didn’t declare: interactive Cloudflare OAuth (wrangler login) and access to the local 'openclaw' CLI and its data. The bridge clears proxy env vars and may read/write local files and logs (~/.zz, ~/.openclaw/workspace, ~/Library/LaunchAgents). Messages and registration are routed through a central server (ai0000.cn) by default, which will learn user IDs and relay messages; this external dependency and network access are not represented in declared requirements.
!
Persistence & Privilege
Instructions create persistent artifacts and services: files under ~/.zz and ~/.openclaw, a long-running watchdog/bridge pair started with nohup, and an optional launchd plist that runs at login and keeps the watchdog alive. The skill is not 'always: true', but it does instruct the agent/user to install persistent background processes and autorun entries — this raises the blast radius if the bridge/watchdog are later modified or compromised.
What to consider before installing
This skill will deploy a Cloudflare Worker under your Cloudflare account (it runs 'wrangler login' and 'wrangler deploy'), start a persistent local bridge process that invokes your local 'openclaw' CLI, write files under ~/.zz and ~/.openclaw, and by default registers/relays via https://ai0000.cn/zz/ (a central server). Before installing: 1) Only proceed if you trust the author and the central server (ai0000.cn). Messages and assigned IDs may be routed through that server. 2) Inspect the included scripts (bridge.py/bridge.js/watchdog.py/worker.js) yourself — they will be copied into your home and run. 3) Be prepared to grant Cloudflare OAuth and ensure you understand what the Worker will do once deployed. 4) Confirm you have and trust the local 'openclaw' CLI (it will be invoked by the bridge) and consider running the bridge manually first instead of installing the launchd plist. 5) If you want tighter control, replace the default API/central-server URL with a server you control, or run the bridge/watchdog inside an isolated VM/container rather than on your main workstation. 6) Note missing declarations: wrangler and openclaw are required but not declared; verify versions and sources before running npm install -g or other privileged installs.
bridge.js:20
Shell command execution detected (child_process).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🦞 Clawdis
latestvk97dx0agazv3ef0k208frrcahs83z3mj
133downloads
0stars
2versions
Updated 3w ago
v1.0.1
MIT-0

爪爪 🦞 — 手机直连 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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key><string>com.zz-chat.bridge</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/python3</string><string>-u</string>
        <string>/Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.py</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key><string>/Users/$(whoami)/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
        <key>all_proxy</key><string></string><key>ALL_PROXY</key><string></string>
        <key>http_proxy</key><string></string><key>HTTP_PROXY</key><string></string>
        <key>https_proxy</key><string></string><key>HTTPS_PROXY</key><string></string>
    </dict>
    <key>RunAtLoad</key><true/><key>KeepAlive</key><true/>
    <key>StandardOutPath</key><string>/Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.log</string>
    <key>StandardErrorPath</key><string>/Users/$(whoami)/.openclaw/workspace/openchat/bridge/watchdog.log</string>
    <key>WorkingDirectory</key><string>/Users/$(whoami)/.openclaw/workspace/openchat/bridge</string>
</dict>
</plist>
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

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>爪爪</title>
<style>
body{font-family:-apple-system,sans-serif;background:#0a0a0a;color:#e0e0e0;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;margin:0}
h1{font-size:24px;margin-bottom:8px}
.id{font-size:48px;font-weight:bold;color:#4fc3f7;margin:12px 0}
.qr{background:#fff;padding:12px;border-radius:12px;margin:16px 0}
.hint{color:#8892b0;font-size:14px;text-align:center;max-width:300px;line-height:1.6}
</style></head>
<body>
<h1>🦞 爪爪</h1>
<div class="id">编号 {ZZ_ID}</div>
<div class="qr" id="qrBox"></div>
<div class="hint">手机扫码打开爪爪<br>消息通过你的 OpenClaw 处理</div>
<script>
const url = '{PAGE_URL}';
const img = new Image();
img.src = 'https://quickchart.io/qr?text=' + encodeURIComponent(url) + '&size=200';
img.style.borderRadius = '8px';
document.getElementById('qrBox').appendChild(img);
</script>
</body>
</html>

用 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.jsNode.js 版桥接(Windows 兼容)
start-bridge.batWindows 启动脚本

桥接参数

bridge.py --worker <URL>    # 指定 Worker 地址
bridge.py --uid <ID>        # 直接指定编号

看门狗(watchdog.py)

launchd → watchdog.py → bridge.py
(系统级)  (进程级)    (实际桥接)
  • 每 10 秒检查 bridge 进程是否存活
  • 每 30 秒 bridge 写心跳日志
  • 90 秒无活动 → 重启 bridge
  • 零服务器压力(本地检测)

注意事项

  • 只有扫码(带 ?bridge= + ?api= 参数)才能进入网页
  • 桥接需要电脑保持运行(不休眠)
  • 每用户独立 Worker,免费额度:100 WebSocket 并发 + 10 万请求/天
  • 消息通过 openclaw agent CLI 处理
  • 注册后 1 小时未发消息自动清理,发过消息后 24 小时不活跃自动清理
  • watchdog 日志:~/.openclaw/workspace/openchat/bridge/watchdog.log
  • bridge 日志:~/.openclaw/workspace/openchat/bridge/bridge.log

开发者

🦞 爪爪 by 秋风悠扬

Comments

Loading comments...