ucsandman/DashClaw
Remote approvals, policy checks, and execution evidence for unattended AI agents.
什么是 DashClaw?
DashClaw 是一个位于 AI 驱动的编码代理(例如 Claude Code、Codex、Hermes、OpenClaw)与它希望运行的工具之间的 运行时防护。当代理提议执行可能具有破坏性或高成本的操作时——例如删除目录、强制推送仓库或泄露凭证——DashClaw 会在工具实际执行 之前 拦截该请求。随后,请求将被路由到一个审批收件箱(Web UI、CLI、Telegram、Discord 等),由人类决定允许、拒绝或创建一个范围受限的“仅一次允许”授权。每个决策都会被记录在签名的决策账本中,以供后续审计。
为什么你需要它
- 无人值守的代理运行 – 夜间 CI 作业、后台代理群或长时间运行的自主代理在你未监控时可能发出危险命令。
- 安全优先策略强制 – 定义规则(例如阻止
rm -rf,防止在生产环境中执行DROP TABLE),系统将自动阻止违规行为。 - 审计追踪 – 每个决策均使用 Ed25519 签名,提供防篡改的证明,说明哪些操作被允许或被阻止。
- 远程审批 – 可从任何地方(Web 收件箱、手机 PWA、聊天机器人)进行审批,无需保持终端在线。
工作原理(核心循环)
- 代理提出一个操作(例如一个 shell 命令)。
- 安装在代理运行时(Claude Code、Codex、Hermes、OpenClaw 或
dashclaw_invoke辅助工具)中的 钩子 调用 DashClaw 的防护 API。 - 防护模块根据你的策略对请求进行评分,并返回以下之一:
allow/warn– 执行继续(可选地附带警告)。require_approval– 调用被冻结,审批收件箱中出现待处理项。block– 钩子以代码 2 退出;工具不会运行。
- 如果需要审批,你可远程处理。决策(包括签名收据)将存储在 决策账本 中。
- 审批通过后,DashClaw 发出一个 原子执行声明,代理的回调函数运行。该声明保证“仅执行一次”的语义;如果声明丢失,SDK 不会自动重试。
该系统支持 机械强制(失败关闭钩子)和 协作强制(普通 SDK 或 API 调用者必须遵守防护判断)两种模式。
主要功能(如 README 所列)
| 功能 | 提供的价值 |
|---|---|
| 失败关闭拦截 | Claude Code、Codex、Hermes、OpenClaw 和 dashclaw_invoke 中的钩子可在执行前中止调用。 |
| 一键远程审批 | 可通过 Web 收件箱、CLI、手机 PWA、Telegram 或 Discord 进行审批/拒绝。 |
| 通俗易懂的摘要 | 每个待处理项都会显示命令将执行的操作的简洁描述,并标记不可逆操作。 |
| “允许,不再询问” | 可创建范围受限的常驻授权,自动批准未来匹配的操作。 |
| 签名决策记录 | Ed25519 收据可验证决策是否未被更改。 |
| 可调的中断 | 策略阈值可自适应调整,减少误触发;可调节中断频率。 |
| 自主性评分 | 代理报告置信度数值;过度自信的操作将在账本中高亮显示。 |
| 存活探测 | DashClaw 可测试已安装钩子是否仍正常工作,并报告版本/指纹信息。 |
| 提示注入扫描 | 内置检测恶意提示模式,防止绕过防护。 |
| 多运行时支持 | 提供 Node 和 Python SDK、REST API,以及 Claude Code、Codex、Hermes、OpenClaw 的原生插件。 |
| 可自托管(MIT 许可证) | 可本地部署或在自有云实例上运行;npm 和 PyPI 包均可用。 |
快速入门
# 安装 CLI(npm)并启动本地实例
npm i -g @dashclaw/cli
npx dashclaw up # 配置 Postgres,生成密钥,在 :3000 启动服务器
- 命令会将 API 密钥输出到
~/.dashclaw/instance.json。 - 验证服务器是否运行:
GET http://localhost:3000/api/health或npx dashclaw doctor。 - 按屏幕提示连接 Claude Code 钩子(或使用
dashclaw install <agent>命令连接 Codex、Hermes 等)。
对于云部署,可使用提供的 Vercel 按钮,它会设置一个 PostgreSQL 实例(Neon),并在构建 Web UI 前运行迁移。
连接代理
| 代理 | 集成点 | 强制类型 |
|---|---|---|
| Claude Code | 插件 + PreToolUse 钩子 | 机械式(失败关闭) |
| Codex | 插件 | 机械式 |
| Hermes | 插件(生命周期钩子) | 机械式 |
| OpenClaw | 网关插件 | 机械式 |
dashclaw_invoke(MCP) |
受保护调用 | 机械式 |
| Claude Desktop(聊天) | OAuth 连接器 | 协作式 |
| LangChain / CrewAI / AutoGen | Python SDK | 协作式 |
| 任意 HTTP 客户端 | REST API + Webhooks | 协作式 |
每个集成都附带一个小型 SDK(Node 中为 runGoverned,Python 中为 run_governed),用于包装高风险调用,等待审批并记录结果。
DashClaw 不是 什么
- 它不是通用的追踪或可观测性平台——它仅在执行前进行治理。
- 它不是全能的代理框架——它提供单一、明确的防护接口。
- 它不保证普遍的硬性强制;强制仅在安装钩子的地方有效,否则调用者必须协作。
- 它无法防止恶意代理修改钩子本身——你必须在隔离容器或独立操作系统用户中运行。
- 它是一个非常新的项目(首次提交:2026年2月),尚未在大规模场景中经过实战检验。
谁在维护它
该仓库由 AI 代理 在人类持有的章程下维护。章程强制执行五项不变性(区块为绝对,禁止自我审批,政策放宽需人类批准,凭据受控操作保持人类控制,章程本身也保持人类控制)。所有重大设计决策均记录在 docs/maintainer-log.md 中。
如何深入了解
- 网站与文档 – https://dashclaw.io 和 https://dashclaw.io/docs
- 完整 API 规范 –
docs/openapi/critical-stable.openapi.json - 架构与威胁模型 –
docs/architecture/enforcement-boundary.md - 示例项目 –
examples/ - 许可证 – MIT(见
LICENSE)
TL;DR
DashClaw 为 AI 编码代理提供了一个 失败关闭的门禁,让你可以运行长时间、无人值守的任务,同时在任何高风险操作上保持人类在环。它以加密收据记录每个决策,支持远程审批,并可在 Node、Python 及多个流行的 LLM 代理运行时中使用。
相关
- 项目
- 项目
- 项目
- 项目