.gitignore for AI agents

AI 智能体的
.gitignore

你让 Claude Code 改个项目,它顺手 cat .env 把密钥读进上下文——而你毫无察觉。readignore 堵的就是这个缺口。

check_circle Claude Code check_circle codex CLI check_circle pi check_circle opencode check_circle kilo code
readignore — 实时演示
问题

.gitignore 只挡 git,挡不住 AI 读取

AI 编程智能体(Claude Code、Cursor、Codex、opencode)在运行时可以读你仓库里的任何文件——包括密钥。现有防护各有缺口:

挡不住

.gitignore

只阻止 git 提交。智能体运行时 cat .env 照样读出来。

可绕过

permissions.deny: Read(.env)

只挡 Read 工具。grep . .env 走 Bash,照样把密钥喂给模型。

方案

一份 .readignore,适配每个智能体

100% gitignore 语法,零学习成本。readignore 把它翻译成每个智能体当前真正支持的最强防御机制——并诚实标注每一项的实际强度。

.readignore
# readignore — files this repo's AI agent must not read

# Secrets
.env
.env.*
!.env.example            # ! negation: allow the template
*.pem
*.key

# SSH / cloud credentials
**/id_rsa
.aws/
能力矩阵

强度诚实分级

不假装跨智能体等价。readignore 适配到每个智能体实际能强制执行的机制,并把做不到的说清楚。

智能体 强度 机制 状态
Claude CodehardPreToolUse 钩子——执行前拦截 Read/Grep/Glob/Bashcheck_circle
codex CLIhard.codex/hooks.json,Claude-style PreToolUse 钩子check_circle
pihard.pi/extensions TS 扩展覆写内置 read 工具check_circle
opencodeconfigopencode.json 的 permission.read deny/allow globcheck_circle
kilo codeconfigkilo.json 的 permission.read deny/allow globcheck_circle
Cursorsoft.cursor/rules 自然语言建议(模型可能遵守)map
工作原理

一份声明,按智能体适配

readignore 工作原理

改 .readignore 立即生效——钩子每次调用都实时重读,无需重新 install。和 .gitignore 一样改完即用。

快速开始

三步上工

1npm i -g readignore
2readignore init # 生成 .readignore,内置常见密钥模式
3readignore install --all # 为检测到的全部智能体安装