1Password Browser Login — 1Password 浏览器登录
v1.1.0从 1Password 中取出账号密码,使用无头浏览器自动登录目标网站,然后根据用户需求操作页面。适用场景:用户说“帮我登录 xxx 然后做 yyy”、“用 1Password 登录 xxx”、“从 1Password 取 xxx 的账号登录并下载数据/截图/抓取内容”等。前提:系统已安装 1Password CLI 并配置完成 GitHub 等相关设置。
运行时依赖
安装命令
点击复制技能文档
1Password 浏览器登录
从 1Password 取凭证,无头浏览器自动登录,执行用户指定任务。
前提检查
source ~/.zshrc 2>/dev/null && op whoami 2>&1
若失败,提示用户配置 OP_SERVICE_ACCOUNT_TOKEN。
执行流程 Step 1:解析意图 从用户消息提取:
ITEM_NAME:1Password 中的 item 名称TASK:登录后要做什么
ITEM_NAME 不明确时,列出所有可用 item 让用户选:
source ~/.zshrc 2>/dev/null && op item list --format json 2>&1 Step 2:取凭证
服务账户必须指定 vault,先列出:
source ~/.zshrc 2>/dev/null && op vault list --format json 2>&1
取 item 详情:
source ~/.zshrc 2>/dev/null && op item get "" --vault "" --format json 2>&1
从 JSON 中提取:
fields[]中purpose=USERNAME的 value →usernamefields[]中purpose=PASSWORD的 value →passwordurls[0].href→ 登录页 URL
- 禁止将
password打印到回复或日志 - 禁止将凭证写入任何文件
Step 3:浏览器登录
browser open url=<登录页URL>
browser snapshot → 找用户名输入框、密码输入框、登录按钮的 ref
browser act kind=type ref=<用户名框> text=
browser act kind=type ref=<密码框> text=
browser act kind=click loadState=networkidle ref=<登录按钮>
browser snapshot → 确认已离开登录页(登录成功)
Step 4:执行任务 任务类型 操作
- 截图
browser screenshot→ 保存到./downloads/→MEDIA:./downloads/文件名发给用户 - 抓页面数据
browser snapshot→ 解析内容 → 整理回复 - 下载文件
browser act kind=click触发下载 →exec找到文件移到 workspace →MEDIA发送 - 导航后操作
browser navigate url=<目标页>→ 再截图/抓数据/下载
./downloads/YYYY-MM-DD_<网站名>_<描述>.<扩展名> 错误处理 错误 处理
- item 不存在 列出所有 item,让用户确认名称
- vault 无权限 提示在 1Password 后台给服务账户授权该 vault
- 登录失败(密码错误) 截图当前页,告知用户
- 需要 2FA 告知不支持,需用户手动处理
- CAPTCHA 截图,告知用户需手动完成验证
- 找不到输入框 截图,让用户描述表单位置
示例
用户: 帮我登录 MyApp 然后截个首页截图
ITEM_NAME="MyApp",TASK="截首页截图"
取凭证 → browser 登录 → screenshot → 发给用户
用户: 用 1Password 登录 GitHub 下载最新 release
ITEM_NAME="GitHub",TASK="下载最新 release"
取凭证 → 登录 → 导航到 releases 页 → 点击下载 → 发文件