安全扫描
OpenClaw
安全
medium confidence该技能在内部一致于其声明的目的(OpenClaw 代理的本地状态/健康 API),但会执行大量本地文件读取和基于配置及发现的技能元数据的 shell 命令。部署前请审查配置并使用最小权限运行。
评估建议
该技能适合本地监控,但会读取本地 OpenClaw 文件并运行您配置的 shell 命令。使用前请审查和加固。关键考虑事项包括:审查 config.json(命令类型和电子邮件账户执行任意命令)、最小权限运行、敏感文件访问、公共暴露风险、命令注入风险、TLS 行为。...详细分析 ▾
✓ 用途与能力
代码实现了一个状态 API,收集机器人核心生命体征、服务检查(HTTP/命令/文件)、通过配置命令的电子邮件未读数、定时任务、Docker/Portainer 容器、开发服务器进程、安装的技能和 /proc 系统指标 — 所有内容与描述一致。
ℹ 指令范围
指令和代码故意读取 OpenClaw 文件(heartbeat-state.json, cron/jobs.json, auth-profiles.json),扫描技能目录,并运行配置的 shell 命令用于服务/电子邮件检查。适合监控用途,但意味着该技能将读取可能敏感的本地文件并运行 config 中指定的任意命令。
✓ 安装机制
无安装规范(仅指令安装)。源文件提供,意图由用户复制/运行;安装过程中不从外部 URL 获取任何内容。
ℹ 凭证需求
该技能声明无必需的环境变量或凭证,与捆绑包一致。然而,server.js 设置 NODE_TLS_REJECT_UNAUTHORIZED=0(全局禁用 TLS 验证)并且收集器读取代理文件(auth-profiles.json)和 config 中的任意路径。这些行为可以由 Portainer/自签名设置和本地监控解释,但它们扩大了数据和网络信任表面。
✓ 持久化与权限
always 为 false,该技能不尝试修改其他技能或系统范围的代理配置。它是一个独立服务,由用户运行(systemd 指令是可选的)。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.12026/2/6
初始公开发布
● 可疑
安装命令 点击复制
官方npx clawhub@latest install bot-status-api
镜像加速npx clawhub@latest install bot-status-api --registry https://cn.clawhub-mirror.com
技能文档
一个可配置的 HTTP 服务,以 JSON 格式公开你的 OpenClaw 机器人的运行状态。专为仪表板集成、监控和透明度而设计。
功能概述
- 机器人核心: 在线状态、模型、上下文使用率、运行时间、心跳计时
- 服务: 任意 HTTP 端点、CLI 工具或文件路径的健康检查
- 邮件: 任意邮件提供商(himalaya、gog 等)的未读计数
- 定时任务: 直接从 OpenClaw 的
cron/jobs.json读取 - Docker: 通过 Portainer API 获取容器健康状态
- 开发服务器: 通过进程 grep 自动检测运行中的开发服务器
- 技能: 列出已安装和可用的 OpenClaw 技能
- 系统: 来自
/proc的 CPU、内存、磁盘指标
配置步骤
1. 复制服务文件
将 server.js、collectors/ 和 package.json 复制到你想要的位置。
2. 创建 config.json
将 config.example.json 复制为 config.json 并进行自定义配置:
{
"port": 3200,
"name": "MyBot",
"workspace": "/path/to/.openclaw/workspace",
"openclawHome": "/path/to/.openclaw",
"cache": {
"ttlMs": 10000
},
"model": "claude-sonnet-4-20250514",
"skillDirs": ["/path/to/openclaw/skills"],
"services": [
{
"name": "myservice",
"type": "http",
"url": "http://...",
"healthPath": "/health"
}
]
}
服务检查类型
| 类型 | 描述 | 配置项 |
|---|---|---|
http | 获取 URL,检查 HTTP 200 | url、healthPath、method、headers、body |
command | 运行 shell 命令,检查退出码为 0 | command、timeout |
file-exists | 检查路径是否存在 | path |
3. 运行服务
node server.js
4. 持久化运行(systemd 用户服务)
# ~/.config/systemd/user/bot-status.service[Unit]
Description=Bot Status API
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/bot-status
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=5
Environment=PORT=3200
Environment=HOME=/home/youruser
Environment=PATH=/usr/local/bin:/usr/bin:/bin
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now bot-status
loginctl enable-linger $USER # 退出登录后保持运行
5. 从 OpenClaw 获取上下文/生命体征
机器人应该定期将其生命体征写入工作区的 heartbeat-state.json:
{
"vitals": {
"contextPercent": 62,
"contextUsed": 124000,
"contextMax": 200000,
"model": "claude-opus-4-5",
"updatedAt": 1770304500000
}
}
将其添加到你的 HEARTBEAT.md 中,以便机器人在每个心跳周期更新它。
端点
| 端点 | 描述 |
|---|---|
GET /status | 完整的 status JSON(带缓存) |
GET /health | 简单的 {"status":"ok"} |
架构设计
- 零依赖 — 仅使用 Node.js 内置模块(
http、fs、child_process) - 非阻塞 — 所有 shell 命令使用异步
exec,从不使用execSync - 后台刷新 — 缓存按间隔刷新,请求始终从缓存即时响应(约 10ms)
- 配置驱动 — 所有配置都在
config.json中,无硬编码值
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制