policy.json 和环境变量中读取其配置。模式切换使用 CC_SAFETY_NET_* 前缀。不带 CC_ 前缀的旧 SAFETY_NET_* 名称仍保留为旧别名(如有注明)。在启动智能体之前,请在 shell 或智能体的启动环境中设置变量。
本页说明各变量本身,以及它们如何与 policy.json 组合。各级别阻止的内容见模式;完整的策略文件契约见策略。
安全级别
这三个预设扩展为相同的三个能力 -
fail_closed、paranoid_rm 和 paranoid_interpreters。请参阅模式 了解每个预设阻止的内容以及每个能力更改的内容。
除 standard、strict 或 paranoid 之外的任何值都将被忽略,并且 policy.json 中配置的级别将保持不变。拒绝的值始终报告在 stderr 上 — 不需要调试标志:
能力开关
这些是旧版的单项能力标志。每个标志都只能开启对应能力。将标志设置为假值不会关闭能力。需要关闭预设所启用的能力时,请在 policy.json 中使用safety.overrides。
当设置为
1 或 true(不区分大小写)时,布尔标志为 true。当设置 CC_SAFETY_NET_* 名称时,它获胜;仅当前缀名称不存在时才参考 SAFETY_NET_* 别名。
优先级
策略和环境按固定顺序组合:- 预设。
policy.json中的safety.level提供继承的能力默认值。当该字段不存在时,预设为standard。 CC_SAFETY_NET_LEVEL。 有效基础级别是策略级别和环境级别中较高的一个。环境可以提高级别,但绝不会降低级别。safety.overrides.*。policy.json中的显式能力覆盖,然后在任一方向上设置fail_closed、paranoid_rm或paranoid_interpreters- 向上或向下。- 能力开关。
CC_SAFETY_NET_STRICT、CC_SAFETY_NET_PARANOID、CC_SAFETY_NET_PARANOID_RM和CC_SAFETY_NET_PARANOID_INTERPRETERS标志最后应用,并且是单调的 — 每个标志都将其能力强制为true,并且它们都不能关闭能力。 - worktree 模式是
workflow.worktree_mode和CC_SAFETY_NET_WORKTREE的逻辑或。
paranoid_rm 开启而 fail_closed 关闭)会报告为 custom。
destructive_command_protection.overrides 中的每规则条目应用于能力派生状态之上。灾难性规则始终强制执行,并且不能通过上述任何一项来禁用。
审计范围
all(默认值,以及未设置变量时的行为)记录允许和阻止的命令决策。blocked是隐私最小化设置:仅记录拒绝。- 此设置永远不会抑制拒绝。
- 任何其他值都会回退到仅拒绝记录,并且
doctor将其报告为警告结果environment.audit-scope-invalid。
调试输出
CC_SAFETY_NET_DEBUG 不会更改记录的决策 - 即 CC_SAFETY_NET_AUDIT_SCOPE。在调查为什么允许命令或提交错误报告时使用它。 doctor 命令报告是否已设置。
配置目录覆盖
设置后,从
<path>/policy.json 读取 policy.json,从 <path>/rules/ 读取用户范围的 rulebook 配置,并从同一目录树读取 rulebook lock 和缓存。这适用于沙箱或非标准 HOME 设置,例如智能体使用与 shell 不同的主目录运行时。
CC_SAFETY_NET_HOME 不重新定位审计日志。审计根独立解析 - 请参阅审计日志的布局了解其派生方式。更新检查选择退出
rule doc 通常最多每 24 小时检查一次更新版本:它轮询 https://registry.npmjs.org/cc-safety-net/latest,将结果缓存在 $HOME/.cc-safety-net/update-check.json 中,并在存在更新版本时在 stderr 上打印 UPDATE_AVAILABLE: 行。该轮询是 CLI 在 rule doc 期间发出的唯一出站网络请求。
当设置 CC_SAFETY_NET_NO_UPDATE_CHECK 时,将完全跳过检查:没有注册表轮询,没有缓存写入,也没有 UPDATE_AVAILABLE: 行。它不会影响 doctor 和仪表板运行的单独更新检查。
检查你的活动配置
运行status 进行快速检查,或运行 doctor 获取完整报告:
doctor 报告的 Environment 部分列出每个变量、变量值、默认行为,以及正在使用的旧 SAFETY_NET_* 名称。两个命令的完整语法和输出见 CLI 命令;Claude Code 中的概览指示器见状态行。