可信 — 风险评分 5/100
上次扫描:1 天前 重新扫描
5 /100
clawdoctor
Self-healing monitor for OpenClaw gateways, crons, and agent sessions with Telegram alerts and auto-fix capabilities
ClawDoctor is a legitimate self-healing monitor for OpenClaw with well-structured, confined shell execution, no credential harvesting, no obfuscation, and documented behavior that aligns with implementation.
技能名称clawdoctor
分析耗时67.0s
引擎pi
可以安装
Approve for use. The skill performs its declared monitoring and auto-fix functions within a tightly controlled set of shell commands and file paths scoped to ~/.openclaw and the openclaw CLI.
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 Reads session files at ~/.openclaw/agents/*/sessions/*.jsonl, cron jobs at ~/.op…
网络访问 READ READ ✓ 一致 POSTs license keys to https://clawdoctor.dev/api/license/validate (config.ts:179…
命令执行 NONE WRITE ✓ 一致 execFileSync('systemctl', ...) in healers/process.ts:26; execFileSync('openclaw'…
环境变量 NONE READ ✓ 一致 Reads CLAWDOCTOR_KEY from process.env.CLAWDOCTOR_KEY (config.ts:144, daemon.ts:1…
数据库 NONE READ/WRITE ✓ 一致 Writes to ~/.clawdoctor/events.db (SQLite, better-sqlite3). Only stores event lo…
技能调用 NONE NONE No inter-skill invocation observed.
剪贴板 NONE NONE No clipboard access.
浏览器 NONE NONE No browser automation.
10 项发现
🔗
中危 外部 URL 外部 URL
https://clawdoctor.dev
CLAWDOCTOR-FACTSHEET.md:19
🔗
中危 外部 URL 外部 URL
https://www.npmjs.com/package/clawdoctor
CLAWDOCTOR-FACTSHEET.md:20
🔗
中危 外部 URL 外部 URL
https://buy.stripe.com/7sY14g2fsex33F08U51ck01
CLAWDOCTOR-FACTSHEET.md:23
🔗
中危 外部 URL 外部 URL
https://buy.stripe.com/eVq28k2fsdsZ7Vg6LX1ck02
CLAWDOCTOR-FACTSHEET.md:24
🔗
中危 外部 URL 外部 URL
https://clawdoctor.dev/docs
CLAWDOCTOR-FACTSHEET.md:25
🔗
中危 外部 URL 外部 URL
https://clawdoctor.dev/welcome?session_id=...
CLAWDOCTOR-FACTSHEET.md:26
🔗
中危 外部 URL 外部 URL
https://www.patreon.com/feross
package-lock.json:58
🔗
中危 外部 URL 外部 URL
https://feross.org/support
package-lock.json:62
🔗
中危 外部 URL 外部 URL
https://api.telegram.org
src/alerters/telegram.ts:10
🔗
中危 外部 URL 外部 URL
https://clawdoctor.dev/#pricing
src/daemon.ts:133

目录结构

33 文件 · 194.5 KB · 5618 行
TypeScript 26f · 4150L Markdown 4f · 873L JSON 3f · 595L
├─ 📁 src
│ ├─ 📁 alerters
│ │ └─ 📜 telegram.ts TypeScript 329L · 10.4 KB
│ ├─ 📁 healers
│ │ ├─ 📜 auth.ts TypeScript 56L · 1.9 KB
│ │ ├─ 📜 base.ts TypeScript 76L · 1.9 KB
│ │ ├─ 📜 budget.ts TypeScript 82L · 2.9 KB
│ │ ├─ 📜 cron.ts TypeScript 169L · 6.6 KB
│ │ ├─ 📜 process.ts TypeScript 92L · 3.6 KB
│ │ └─ 📜 session.ts TypeScript 119L · 4.6 KB
│ ├─ 📁 test
│ │ ├─ 📜 config.test.ts TypeScript 58L · 2.3 KB
│ │ ├─ 📜 healers.test.ts TypeScript 258L · 9.9 KB
│ │ ├─ 📜 store.test.ts TypeScript 97L · 3.5 KB
│ │ ├─ 📜 telegram.test.ts TypeScript 116L · 5.0 KB
│ │ └─ 📜 watchers.test.ts TypeScript 219L · 7.8 KB
│ ├─ 📁 watchers
│ │ ├─ 📜 auth.ts TypeScript 197L · 6.0 KB
│ │ ├─ 📜 base.ts TypeScript 55L · 1.6 KB
│ │ ├─ 📜 budget.ts TypeScript 128L · 3.9 KB
│ │ ├─ 📜 cost.ts TypeScript 176L · 5.5 KB
│ │ ├─ 📜 cron.ts TypeScript 137L · 4.1 KB
│ │ ├─ 📜 gateway.ts TypeScript 37L · 1.4 KB
│ │ └─ 📜 session.ts TypeScript 160L · 5.8 KB
│ ├─ 📜 audit.ts TypeScript 38L · 1.1 KB
│ ├─ 📜 config.ts TypeScript 276L · 8.1 KB
│ ├─ 📜 daemon.ts TypeScript 433L · 15.8 KB
│ ├─ 📜 index.ts TypeScript 547L · 19.6 KB
│ ├─ 📜 snapshots.ts TypeScript 101L · 2.9 KB
│ ├─ 📜 store.ts TypeScript 141L · 4.1 KB
│ └─ 📜 utils.ts TypeScript 53L · 1.7 KB
├─ 📝 CLAWDOCTOR-FACTSHEET.md Markdown 365L · 17.2 KB
├─ 📋 package-lock.json JSON 527L · 18.3 KB
├─ 📋 package.json JSON 49L · 1.1 KB
├─ 📝 README.md Markdown 165L · 4.8 KB
├─ 📝 SKILL.md Markdown 108L · 3.3 KB
├─ 📝 TASK.md Markdown 235L · 7.5 KB
└─ 📋 tsconfig.json JSON 19L · 445 B

依赖分析 3 项

包名版本来源已知漏洞备注
better-sqlite3 ^9.4.3 npm Pinned to major version range ^9.4.3. Native SQLite binding with WAL support.
commander ^12.1.0 npm Pinned to ^12.1.0. Standard CLI argument parser.
typescript ^5.4.5 npm (dev) Dev dependency only. TypeScript compiler.

安全亮点

✓ Shell execution is tightly controlled: execFileSync only invokes 'openclaw' CLI and 'systemctl', no arbitrary command strings
✓ Rollback commands in snapshots.ts are validated against an explicit ALLOWED_ROLLBACK_PREFIXES allowlist
✓ No credential harvesting: code only reads CLAWDOCTOR_KEY env var and OpenClaw's own session/auth data within ~/.openclaw
✓ No obfuscation: no base64 encoding, no dynamic eval(), no anti-analysis techniques
✓ No external C2 communication: only expected outbound traffic to Telegram API and the skill's own licensing server
✓ SQLite DB is scoped to ~/.clawdoctor/events.db with WAL journal mode and proper file permissions (mode 0o600)
✓ Systemd service installation uses hardening flags: NoNewPrivileges=true, PrivateTmp=true, ProtectSystem=strict
✓ Telegram callback handlers are rate-limited (10s debounce) and expire after 24 hours
✓ Alert deduplication uses persistent timestamps in SQLite to prevent duplicate alerts across restarts
✓ Dependencies are pinned: better-sqlite3 ^9.4.3, commander ^12.1.0, typescript ^5.4.5
✓ License keys are cached locally with day-age validation before network re-check
✓ Auto-fix (healing) requires 'heal' plan — free/diagnose tiers force dryRun=true