检查是否正常工作
zn-gate check 会显示 zn 是否阻止你的编程智能体读取密钥:一个带假密钥的测试 .env 文件会被阻止,一个普通文件则被允许。不会向任何地方发送任何内容。
为你的编程智能体安装 zn-gate之后,打开一个新的终端并运行:
npx -y zn-gate check
(如果你用 npm install -g zn-gate 安装,则运行 zn-gate check)。
它的作用
zn-gate 会创建一个临时文件夹,里面有两个文件:一个保存假密钥的 .env 文件,以及一个普通的 README.txt。对于为你的用户设置好的每个智能体,它会请 zn 的钩子允许该智能体读取每个文件,方式与你的智能体发出请求时相同。只有当 .env 文件被阻止、普通文件被允许时,该智能体才算受到保护。
- Claude Code:zn-gate 会检查 zn-gate 插件,或
zn hooks install claude-code安装的钩子。如果插件被关闭,或某项 Claude Code 设置关闭了钩子,它也会察觉。 - Codex CLI 和 Cursor:zn-gate 会检查
zn hooks install安装的钩子。 - 运行内容:对于 Claude Code、Codex CLI 和 Cursor,它会像你的智能体那样运行已安装的钩子。如果钩子无法启动,或因 zn 的某部分缺失而阻止所有文件,则会被报告为 NOT protected。在 Windows 上,以
zn hook <agent>形式安装的钩子不会被启动;zn-gate 会改为检查该钩子所依据的 zn 规则,并会明确说明。 - OpenCode:zn-gate 检查 zn 的规则。zn 插件在 OpenCode 内部运行,因此这里不会启动它。
- 不会处理的内容:它只检查为你的用户完成的设置。只针对某一个项目做的设置会被列出,但不会运行。
- 不会更改任何内容:不会通过网络发送任何数据,不会启动任何智能体,也不会更改任何设置。最后会删除该文件夹。
你会看到什么
zn-gate check: does zn stop your coding agent from reading a secret?
OK Claude Code blocked the .env file and allowed the ordinary file. Your agent would be told:
"zn: ..."
- Codex CLI zn is not set up for this agent. To protect it, run `zn hooks install codex` in your own terminal.
...
Your agent cannot read secret files such as .env through these tools. Nothing was sent anywhere.
- OK:zn 正在保护该智能体。引号中的文字是智能体尝试读取该文件时收到的提示内容。
- -:zn 尚未为该智能体设置,或只为某一个项目设置。该行会给出为你的用户完成设置的命令。
- X ... NOT protected:zn 已设置,但无法保护该智能体。该行会说明原因,以及要运行什么来修复。
只有当所有为你的用户设置好的智能体都受到保护时,zn-gate check 才会以 0 退出。
如果你的智能体需要 .env 中的某个值
zn 会阻止该文件,因为其中包含密钥值。要让你的智能体在看不到这些值的情况下使用它们,请把这些值移入 zn 的保险库:
zn env shadow .env
文件会保留 __ZN_API_KEY__ 等标记而不是这些值,zn 只会在你允许的命令中把真实值填回去。更多信息:保险库。
相关内容
zn-gate test会运行 zn 内置的规则自检(51 个示例)。它检查的是规则,而不是你的智能体设置。zn-gate status会显示你的配置会通过网络发送哪些数据(除非你开启了可选的云端检查,否则不发送任何数据)。