用途:当用户希望通过 1Password 而非明文环境变量或文件管理密钥时使用该技能,覆盖安装/配置 1Password CLI、op signin 登录、读取 op:// 引用、注入模板与以密钥环境变量运行命令。
前提条件:1Password 账户;已安装 op CLI;以下任一认证方式——桌面应用集成、服务账户令牌(OP_SERVICE_ACCOUNT_TOKEN)或 Connect 服务器;桌面应用流程还需 tmux 以维持稳定会话。
安装:macOS 用 brew install 1password-cli;Windows 用 winget install AgileBits.1Password.CLI;Linux 见官方包/安装文档。安装后用 op --version 验证。
认证方式:服务账户(推荐用 Hermes),在 ${HERMES_HOME:-~/.hermes}/.env 设置 OP_SERVICE_ACCOUNT_TOKEN,可用 op whoami 验证,支持 op read、op inject、op run;桌面应用集成需在应用设置中启用与 CLI 集成并 op signin 批准生物识别;Connect 服务器需设置 OP_CONNECT_HOST 与 OP_CONNECT_TOKEN。
常用操作:op read "op://app-prod/db/password" 读取密钥;op read "op://app-prod/npm/one-time password?attribute=otp" 获取一次性密码;echo "db_password: {{ op://app-prod/db/password }}" | op inject 注入模板;op run -- sh -c '...' 以密钥环境变量运行命令。
Hermes 执行模式:终端命令默认非交互,桌面应用流程下建议在专用 tmux 会话中完成登录与密钥操作,示例包含创建 socket 目录、启动会话、发送 op signin 与 op whoami、捕获输出及清理会话;使用服务账户令牌时无需此步骤。
安全约束:除非用户明确要求,不要回显原始密钥;优先使用 op run / op inject 而非写入文件;若提示“account is not signed in”,在同一 tmux 会话重新 op signin;无头或 CI 环境应使用服务账户令牌,服务账户需 CLI v2.18.0+。