策略拦截
YAML 声明 allow / ask / deny。程序、旗标、wrapper、正则和敏感路径在执行前判定。
reins 是给 AI coding agent 的本地安全层:在工具执行前拦截,在执行后留下不可悄悄改写的证据。确定性、低延迟、默认离线。
npm i -g @tanghuiyi/reins · Apache-2.0 · Node ≥ 20
reins 把“agent 说它做了什么”变成可以独立检查的执行记录。
YAML 声明 allow / ask / deny。程序、旗标、wrapper、正则和敏感路径在执行前判定。
每次判决写入 JSONL + SHA-256 哈希链。断链、篡改和策略漂移都会被标记。
用候选策略重演历史会话,观察影响范围;只模拟判决,绝不执行命令。
输出完整性、时间线、git 关联与恢复指引,留下团队可以审阅的卷宗。
agent 可能误解、夸大,甚至幻觉式地声称“已经拦截”。reins 的 ledger 不参与对话,只记录真实发生过的判决。
核心执法路径不依赖模型、网络或常驻进程;可选 LLM 只负责解释和提议。
可读的 YAML policy,先命中先赢。把团队对危险操作的共识放进版本控制。
trace verify、replay、snapshot、export,分别服务于验证、改策、取证与外部系统。
MCP 查询和替代建议不会获得执法权。provider=none 是默认,安全路径永远不调用模型。
统一事件结构、policy digest 和 session 语义,让一次拦截能进入 CI、PR 与审计流程。
按官方 hook 协议接入,不要求 agent 改变工作方式;一个
reins init 完成安装。
reins 证明“请求了什么”;Seatbelt、bubblewrap、microVM 负责限制“能碰到什么”。
每个 adapter 都把原生 payload 归一化到同一颗核心:normalize → decide → trace → encode。策略、账本和复盘结果保持一致。
reins exec -- 的脚本或 CI。
| Agent | 入口 |
|---|---|
| Claude Code | hook claude |
| Gemini CLI | hook gemini |
| Codex | hook codex |
| Grok Build | hook grok |
| OpenCode | hook opencode |
| Pi | hook pi |
透明的边界,让你知道何时叠加更强的隔离。
确定性策略判决、agent hook、篡改可见的执行账本、策略回放、git 关联快照、只读查询与可选建议。
它不是 OS 级沙箱,也不承诺覆盖全部 shell 语义。对不可信仓库或高风险环境,请叠加 bubblewrap、Seatbelt、microVM 或官方 sandbox。