首页龙虾技能列表 › Bot Status API — OpenClaw 机器人状态 API

Bot Status API — OpenClaw 机器人状态 API

v1.0.1

部署一个轻量级状态 API,暴露 OpenClaw 机器人的运行健康状况、服务连接性、定时任务、技能、系统指标等。适用于设置监控仪表盘、健康端点或 OpenClaw 代理的状态页面。支持通过配置的 HTTP 检查、CLI 命令、文件检查等任意服务。仅依赖 Node.js,无其他依赖。

0· 2,000·7 当前·7 累计
by @suspect80·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/9
安全扫描
VirusTotal
可疑
查看报告
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 指令是可选的)。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

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.jscollectors/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 200urlhealthPathmethodheadersbody
command运行 shell 命令,检查退出码为 0commandtimeout
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 内置模块(httpfschild_process
  • 非阻塞 — 所有 shell 命令使用异步 exec,从不使用 execSync
  • 后台刷新 — 缓存按间隔刷新,请求始终从缓存即时响应(约 10ms)
  • 配置驱动 — 所有配置都在 config.json 中,无硬编码值
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务