mcpField
A
agent-vault

agent-vault

github.com/botiverse安全44368 次安装36 周前更新
代码仓库

关于 agent-vault

agent-vault 是一项用于安全处理含机密配置文件的技能,可避免暴露机密值。它引导 Agent 检查、读取和写入配置,并将录入或查看机密的操作留给用户执行。

主要功能

  1. 01读写配置时隐藏机密值
  2. 02检查机密键是否存在
  3. 03列出已存储的键名
  4. 04由用户执行机密录入与查看

适用场景

  1. 01更新服务配置而不暴露凭据
  2. 02检查所需键是否已存储
  3. 03指导用户添加缺失的机密

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/botiverse/agent-vault --skill agent-vault

安装后在 Claude Code 中输入/agent-vault确认已加载。

详细介绍

agent-vault

读取和写入配置文件,全程无需接触机密值。机密信息存储在本地加密保险库中。你会看到 <agent-vault:key-name> 占位符;实际值会透明地写入磁盘。

安全命令(由你执行)

agent-vault read <file>                   Read file, secrets → <agent-vault:key>
agent-vault write <file> --content '...'  Write file, <agent-vault:key> → real values
agent-vault has <key> [keys...]           Check if keys exist (exit 0/1)
agent-vault list                          List stored key names

敏感命令(绝不执行——告诉用户运行这些命令)

agent-vault set <key>                     Prompt user to enter a secret
agent-vault import <file>                 Bulk import from .env
agent-vault rm <key>                      Remove a secret
agent-vault get <key> --reveal            Show secret value (user only)

这些命令需要 TTY,如果你尝试执行,将会失败。

规则

  1. 绝不要使用 Read/Write/Edit 工具处理包含机密信息的文件。 请改用 agent-vault read 和 agent-vault write。
  2. 绝不执行敏感命令。 告诉用户在终端中运行这些命令。
  3. 始终先检查。 在要求用户设置可能已经存在的密钥前,先运行 agent-vault has <key>。
  4. 在你写入的所有文件内容中,都使用 <agent-vault:key-name> 占位符。
  5. 引导用户。 缺少机密信息时,告诉用户要运行的确切命令,以及在哪里找到对应的值。

工作流

1. agent-vault has <key>           ← check what's available
2. (if missing) tell user:         ← "Please run: agent-vault set <key>"
3. (wait for user confirmation)
4. agent-vault read <file>         ← read config with redacted secrets
5. agent-vault write <file> ...    ← write config, secrets auto-restored

占位符格式

<agent-vault:key-name> —— 密钥名称由小写字母、数字和连字符组成。

示例:<agent-vault:telegram-bot-token>、<agent-vault:openai-key>、<agent-vault:db-password>

读取时,未存入保险库的高熵字符串会显示为 <agent-vault:UNVAULTED:sha256:XXXXXXXX>。请告诉用户将这些字符串存入保险库。

示例:设置新服务

# Check what exists
agent-vault has api-key db-password --json
# → {"api-key": true, "db-password": false}

请告诉用户(以文本形式,不要执行):

请运行:agent-vault set db-password

用户确认后:

agent-vault write config.yaml --content 'api_key: <agent-vault:api-key>
db_password: <agent-vault:db-password>
host: 0.0.0.0
port: 8080'

示例:修改现有配置

# Read current state
agent-vault read config.yaml
#      1  api_key: <agent-vault:api-key>
#      2  db_password: <agent-vault:db-password>
#      3  port: 3000

# Write updated version
agent-vault write config.yaml --content 'api_key: <agent-vault:api-key>
db_password: <agent-vault:db-password>
port: 9090'

示例:通过 heredoc 写入(适用于较长内容)

agent-vault write docker-compose.yaml <<'EOF'
services:
  app:
    environment:
      API_KEY: <agent-vault:api-key>
      DB_PASSWORD: <agent-vault:db-password>
    ports:
      - "8080:8080"
EOF

评论

支持 Markdown