你的.env正在被AI偷看——Varlock给Claude加一道安全门
你的 .env,正在被 AI 无声偷看
用 Claude Code 写代码时,你有没有过这种操作:直接让 AI 帮你查一个环境变量、`cat .env` 看看某个 key、有时候甚至让它 echo $SECRET_KEY 调试?
别以为这是小事——你的 .env 文件内容会直接进入 AI 的上下文窗口,然后在日志里、在 git diff 里、在终端输出里,一点点泄露出去。你以为 AI 在”安全“模式下运行,实际上它已经把你的数据库密码、API 密钥全部收入囊中了。
这就是 Varlock 要解决的问题。
Varlock 是什么
Varlock 是一个面向 AI 编程场景的安全环境管理工具,核心理念一句话:让 AI 读 schema,不让它读到 secrets。
GitHub 仓库:https://github.com/dmno-dev/varlock
它是怎么工作的
传统 .env 文件是给人类工程师用的,AI 无法区分哪些是安全信息、哪些是密钥。Varlock 引入了一个 .env.schema 文件——这个 schema 只描述变量的名字、类型、是否敏感,但不包含任何实际值。
举个例子,一个 .env.schema 长这样:
# @type=string(startsWith=sk-)
# @required @sensitive
OPENAI_API_KEY=
# @type=port @sensitive=false
API_PORT=8080
AI 读到这个 schema,就知道「哦,这里需要一个 OPENAI_API_KEY」,但永远看不到实际的值是什么。
核心能力一览
- Schema 驱动:只读 schema 不读 secrets,AI 上下文里永远不会出现明文密钥
- 主动泄露扫描:varlock scan + git hooks,commit 前自动检测是否有 secrets 不小心被写入
- 运行时保护:日志脱敏 + 泄露拦截,printenv | grep API_KEY 这类操作会触发警告
- 类型安全 + 验证:支持 @type、@required、@sensitive 等注解,带 IntelliSense 级别的提示
- 多环境管理:自动加载 .env.development / .env.production,按环境切换
- 插件生态:支持从 1Password、Infisical、AWS、Azure、GCP、HCP Vault 等后端安全拉取密钥
安装和使用
安装 Varlock CLI:
brew install dmno-dev/tap/varlock
# 或
curl -sSfL https://varlock.dev/install.sh | sh -s
初始化项目:
npx varlock init
# 或
varlock init
初始化后会生成 .env.schema 文件,之后在 Claude Code 里用 varlock load 来验证环境变量,AI 只能看到脱敏后的值,永远不会把密钥暴露到上下文里。
为什么值得装
你可能觉得:我小心点就行了,不让 AI 读 .env 就完了。但问题是——当你习惯性地甩给 AI 一个「帮我调试这个 API 调用」的时候,你已经忘了它手里拿着你的 .env 文件。
Varlock 的价值是把安全变成默认行为,而不是靠工程师的记忆力。Git hooks 加持下,commit 之前就能拦住一次密钥泄露。
说实话,我第一次看到这个工具时想到的是:早干嘛去了。但确实,在 AI-first 编程时代,env 安全这套思路才刚刚被系统性地做起来。如果你经常用 Claude Code / Cursor / Codex 这类 AI 编程工具,这个 Skill 值得直接装上。
GitHub:https://github.com/dmno-dev/varlock
官网:https://varlock.dev
评论区
登录后可评论。