Secure Environment Variables logo

Secure Environment Variables

打开

基于 Varlock 的 Claude Code Skill,确保密钥不进入 Agent 上下文:校验环境变量时掩码输出、运行时注入,只读取 schema。

分享:
查看替代方案

概述

Secure Environment Variables 即 wrsmith108/varlock-claude-skill,一个 MIT 许可的 Claude Code Skill,底层使用 DMNO 开源的环境变量工具 Varlock。它要解决的问题是:Agent 在终端里工作时,密钥可能泄露到命令输出、模型的输入输出上下文、日志或 git diff 中。Skill 的核心原则是密钥值绝不能出现在 Claude 的上下文里,并为常见的「泄密命令」提供安全替代。

工作方式

不要这样做 安全替代
cat .env cat .env.schema
echo $SECRET varlock load
printenv | grep API varlock load | grep API

你在 .env.schema 中用注解描述变量:@sensitive 让值在所有输出中被掩码,@sensitive=false 允许显示(如公开 key),@required 表示必填,@type= 增加校验,例如 string(startsWith=sk_)、url 或 enum(...)。文件头写 # @defaultSensitive=true 可让所有变量默认敏感。

Skill 还规定了 Claude 对常见请求的处理:用 varlock load | grep API_KEY 检查 key 是否存在;用 varlock load 排查认证问题;需要看配置时展示 schema 而非 .env;并且拒绝代为修改密钥,请你手动更新。

快速上手

# 安装 Varlock CLI
curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew
export PATH="$HOME/.varlock/bin:$PATH"

# 安装 Skill
mkdir -p ~/.claude/skills/varlock && curl -sSL \
  https://raw.githubusercontent.com/wrsmith108/varlock-claude-skill/main/skills/varlock/SKILL.md \
  -o ~/.claude/skills/varlock/SKILL.md

varlock load              # 校验,值被掩码
varlock run -- npm start  # 注入密钥后运行

适用场景

  • 让 Agent 排查 API 集成故障,同时从不打印 key。
  • 服务启动前强制校验必填且类型正确的配置。
  • 需要共享屏幕或录制 Agent 会话的团队。

局限

  • 它是给 Agent 的规范加上 Varlock CLI,并非沙箱,技术上并不能阻止命令读取 .env。
  • 需要编写并维护 .env.schema。

常见问题

它会加密我的密钥吗?

Skill 本身不提供加密,而是借助 Varlock 的 schema 和 load/run 命令,让值在输出中被掩码、不进入对话。

Claude 能帮我修改密钥吗?

按设计会拒绝,并请你手动修改。

替代方案

  • CC Safety Net:PreToolUse hook,在执行前拦截破坏性命令和密钥访问。
  • Claude Code Hooks:用确定性的 hook 执行你自己的规则。
  • mise:从 mise.toml 加载项目环境变量,但不侧重掩码。

更多内容见 Skills 分类 与 安全标签。

评论

还没有评论。成为第一个评论的人!