claude-code-supervisor

👷 智能守护你的自动化编码代理

基于 Bash 预过滤与 LLM 智能分类的 Claude Code 会话监控方案,实现无人值守任务的错误检测、自动恢复与状态通知,提升自动化编码代理的可靠性。

收藏
18.4k
安装
3.9k
版本
v1.0.0
CLS 安全性认证2026-05-07
点击查看完整报告 >

使用说明

核心用法

Claude Code Supervisor 是一套专为长时间运行的 Claude Code 会话设计的监控基础设施。它通过拦截 Claude Code 的生命周期钩子(Stop、Error、Notification),结合 Bash 预过滤与轻量级 LLM 智能分类,实现对代理状态的实时感知与自动干预。

部署流程简洁:运行安装脚本将钩子注入目标项目,配置 YAML 文件指定分类模型与通知后端,随后在 tmux 中启动 Claude Code 任务即可。系统会自动识别会话异常(API 错误、上下文耗尽、任务完成等),并通过用户自定义的通知渠道(OpenClaw、Webhook、ntfy 等)上报,支持自动"轻推"(nudge)恢复或人工升级处理。

显著优点

分层架构降低开销:Bash 预过滤层(Option D)先处理明显场景(如正常停止、瞬态 429 错误),仅将模糊情况提交 LLM 分类,大幅减少 API 调用成本与延迟。

Harness 无关设计:不绑定特定代理框架,通过可配置的 notify.command 适配任意通知后端,从个人脚本到企业级编排系统均可集成。

双重保障机制:除钩子驱动的主动监控外,独立的 Watchdog 脚本以纯 Bash 实现(零 LLM 依赖),定期检测进程存活状态,防止 Claude Code 崩溃、OOM 或账户限流导致的监控盲区。

精细的状态分类:LLM 分类器输出五种明确状态(FINE / NEEDS_NUDGE / STUCK / DONE / ESCALATE),为下游自动化决策提供结构化输入。

潜在缺点与局限性

基础设施依赖:强制要求 tmux 与 Claude CLI,Windows 原生环境支持有限;本地 LLM 选项(如 Ollama)虽可降低云 API 依赖,但增加了部署复杂度。

配置门槛:YAML 配置、状态文件管理、tmux socket 权限等环节需要用户具备一定运维经验,非技术用户上手成本较高。

通知延迟风险:Bash 预过滤虽提升效率,但极端情况下可能误判(如将"接近完成"误判为"正常工作中"),导致通知延迟或遗漏。

权限边界模糊:通过 send-keys 向 tmux 会话注入输入的操作,若目标会话被恶意劫持,可能造成命令注入风险(尽管此风险主要源于 tmux 本身的安全配置)。

适合的目标群体

  • 需要夜间/无人值守运行 Claude Code 任务的开发者与团队
  • 已采用 OpenClaw、n8n、Huginn 等代理编排框架的高级用户
  • 追求自动化故障恢复、减少人工监控成本的工程团队
  • 具备 Bash 与 tmux 基础、愿意投入配置时间的运维人员

使用风险

配置注入风险triage.commandnotify.command 执行用户配置的任意命令,若配置文件被篡改,可能导致恶意代码执行。建议将配置文件纳入版本控制并设置只读权限。

tmux 会话安全:共享 tmux socket 或宽松权限设置可能允许未授权进程注入输入。应确保 socket 文件权限为 600,并限制访问用户。

LLM 服务依赖:云 API(Claude Haiku)可能因限流、故障或成本超支失效;本地模型虽可降级,但需额外维护 Ollama 等服务。

日志与隐私:尽管设计为本地优先,但通知内容可能包含项目路径、错误摘要等信息,若配置 webhook 指向第三方服务,需评估数据出境合规性。

资源占用:长时间监控大量会话时,Watchdog 的轮询机制与 LLM 分类调用可能产生不可忽视的计算与 API 成本。

安全解读

核心用法

Claude Code Supervisor 是一个专为长时间运行的 Claude Code 会话设计的监控与自动化工具。它通过在 Claude Code 生命周期钩子(Stop/Error/Notification)中集成 bash 预过滤和 LLM 智能分诊,实现对会话状态的实时监控。

架构流程:Claude Code 钩子触发 → bash 预过滤器处理明显情况 → LLM(Haiku 或本地模型)分诊判断 → 通知用户配置的命令 → 代理 harness 决定后续动作(继续、升级或静默)。

关键功能

  • 智能预过滤:bash 脚本先处理明显情况(如 API 429 直接跳过、API 500 需分诊),减少不必要的 LLM 调用
  • 五级状态判断:FINE(正常)、NEEDS_NUDGE(需轻推继续)、STUCK(卡住)、DONE(完成)、ESCALATE(需人工)
  • Watchdog 机制:纯 bash 实现的死会话检测,每 15 分钟检查 tmux 会话和进程状态,防止 Claude Code 崩溃导致监控失效
  • 多后端兼容:支持 OpenClaw、webhook、ntfy 或任意自定义脚本作为通知渠道

显著优点

  • Harness 无关:不绑定特定代理框架,通过可配置的 notify.command 接入任何系统
  • 成本优化:bash 预过滤大幅减少 LLM triage 调用次数,仅对模糊情况启用 Haiku(或本地 LLM)
  • 故障兜底:Watchdog 不依赖 Claude Code 存活,即使进程 OOM、API 限流或账户冻结也能检测
  • 纯 Bash 实现:零第三方依赖,代码透明可审计,部署简单
  • 最小侵入:仅修改项目目录下的 .claude/settings.json,可随时卸载

潜在缺点与局限性

  • tmux 依赖:必须使用 tmux 运行 Claude Code,不支持原生终端或 IDE 集成
  • 配置复杂度:需要正确配置 socket 路径、会话名称、通知命令等多个参数,首次设置门槛较高
  • 状态文件管理:supervisor-state.json 需要手动维护,没有自动清理过期会话的机制
  • LLM triage 成本:虽然预过滤优化了调用频率,但模糊情况仍需 Haiku 调用,大规模部署需考虑成本
  • nudge 准确性:自动发送 "continue" 等按键可能不适用于所有场景,存在误操作风险

适合人群

  • 运行长时间代码生成、重构或测试任务的开发者
  • 使用 OpenClaw 或其他代理 harness 管理多个 Claude Code 会话的团队
  • 需要夜间/后台运行自动化编码任务并获取关键状态通知的用户
  • 希望减少 API 错误、上下文限制导致任务中断的手动干预频率的进阶用户

常规风险

  • 配置篡改风险:install-hooks.sh 会修改 .claude/settings.json,建议安装前备份
  • tmux 误操作:错误的 socket/session 配置可能导致向无关会话发送按键
  • 通知命令注入:用户配置的 notify.command 若包含未转义输入可能存在注入风险,建议验证配置
  • 状态文件泄露:supervisor-state.json 包含项目路径和目标信息,建议设置 600 权限限制访问

claude-code-supervisor 内容

assets文件夹
references文件夹
scripts文件夹
hooks文件夹
手动下载zip · 18.6 kB
supervisor-state.template.jsonapplication/json
请选择文件