你的.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


GitHub: https://github.com/dmno-dev/varlock

评论区

0 条评论

登录后可评论。

江望 53 阅读