用途
本技能用于设置和使用 1Password CLI(命令为 op),覆盖安装 CLI、启用桌面应用集成、登录(单账户或多账户)以及执行 op 命令等场景。其核心原则是:遵循官方 CLI 入门步骤,不要猜测安装命令。
主要能力
- 安装 1Password CLI 并验证其存在(op --version)。
- 启用并确认桌面应用集成,确保应用处于解锁状态。
- 在 tmux 会话内完成登录与授权(op signin),并通过 op whoami 验证访问权限。
- 支持多账户场景,通过 --account 或 OP_ACCOUNT 指定账户。
- 提供真实 op 命令示例(见 references/cli-examples.md)。
使用方式
工作流程如下:
- 检查操作系统与 shell。
- 验证 CLI 是否已安装:op --version。
- 确认桌面应用集成已启用(按 get-started 文档)且应用已解锁。
- 必须为所有 op 命令创建一个全新的 tmux 会话(不允许在 tmux 之外直接调用 op)。
- 在 tmux 内登录/授权:op signin(预期会出现应用提示)。
- 在 tmux 内验证访问:op whoami(必须在读取任何密钥之前成功)。
- 若存在多个账户:使用 --account 或 OP_ACCOUNT。
技能要求使用专用 tmux 会话(T-Max)。由于 shell 工具每条命令使用全新的 TTY,为避免重复提示和失败,应始终在带有全新 socket/会话名称的专用 tmux 会话中运行 op。示例命令如下(socket 约定参见 tmux 技能,不要复用旧会话名):
SOCKET_DIR="${THINKFLEETBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/thinkfleetbot-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/thinkfleetbot-op.sock"
SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op vault list" Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
tmux -S "$SOCKET" kill-session -t "$SESSION"
适用场景
- 需要在命令行环境中安装并配置 1Password CLI。
- 需要启用桌面应用集成并完成登录授权。
- 需要管理单个或多个 1Password 账户的 CLI 访问。
- 需要在自动化或脚本环境中安全地读取密钥(优先使用 op run / op inject)。
限制与安全护栏
- 绝不将密钥粘贴到日志、聊天或代码中。
- 优先使用 op run / op inject,而不是将密钥写入磁盘。
- 若需要在没有桌面应用集成的情况下登录,使用 op account add。
- 若命令返回“account is not signed in”,需在 tmux 内重新运行 op signin 并在应用中授权。
- 不要在 tmux 之外运行 op;若 tmux 不可用,应停止并询问。
参考资料
- references/get-started.md(安装 + 应用集成 + 登录流程)
- references/cli-examples.md(真实 op 示例)
关于具体安装命令、支持的操作系统与 shell 范围、账户类型与定价等信息,资料中暂未提供。