适用于 Codex CLI 的 zn-gate
为 Codex CLI 安装 zn 的钩子:阻止读取含值的 .env 文件和凭据文件,对工具输出进行脱敏,并拦截粘贴到提示词中的密钥。
你需要 Node.js 18 或更高版本。在终端中逐行粘贴以下命令,每行后按回车:
npm install -g zn-gate
zn hooks install codex
然后打开 Codex,使用 /hooks 批准新的钩子。
你将获得的保护
- 含值的
.env文件、凭据文件和~/.zn的读取会被阻止,无论是在 shell 命令中还是在补丁(apply_patch)中。 - 工具输出在模型看到之前会被脱敏。Codex 会用脱敏后的文本替换结果,因此模型拿到的是文本,而不是结构化的结果。
- 粘贴到提示词中的密钥会被拦截。
- 对于使用
__ZN_<NAME>__标记的命令,Codex 会收到应使用的确切zn run -- ...命令行。
限制
- Codex 把它的钩子称为"护栏,而非强制执行边界"。如果 zn 钩子无法运行,Codex 会将其报告为失败,调用或提示词将继续执行。
- Codex 自身的会话日志会保留原始输出。
- 在 Windows 上,钩子命令是在 PowerShell 和命令提示符中手动运行的,并未通过我们的自动化测试。
把 .env 中的值存入保险库
智能体无法读取含真实值的 .env 文件。请把这些值移入 zn-gate 的加密保险库,文件中会保留 __ZN_STRIPE_KEY__ 等标记:
zn unlock # 首次运行时创建保险库
zn env shadow .env
完成后,你自己的应用读取 .env 时也只会得到标记:在你允许之后,用 zn-gate 的 run 命令启动它。env shadow 会告诉你如何撤销。更多信息:保险库。
检查是否正常工作
在新的终端中运行 zn-gate check。应显示 Codex CLI 的 OK。输出含义。
在 Windows PowerShell 中,如果 npm 提示 "running scripts is disabled on this system",请改用 npm.cmd 和 zn.cmd:参见安装。