从 1Password 取凭证,无头浏览器自动登录,执行用户指定任务。
bash
source ~/.zshrc 2>/dev/null && op whoami 2>&1
若失败,提示用户配置 OP_SERVICE_ACCOUNT_TOKEN。
从用户消息提取:
ITEM_NAME:1Password 中的 item 名称TASK:登录后要做什么ITEM_NAME 不明确时,列出所有可用 item 让用户选:
bash
source ~/.zshrc 2>/dev/null && op item list --format json 2>&1
服务账户必须指定 vault,先列出:
bash
source ~/.zshrc 2>/dev/null && op vault list --format json 2>&1
取 item 详情:
bash
source ~/.zshrc 2>/dev/null && op item get "<ITEM_NAME>" --vault "<VAULT_NAME>" --format json 2>&1
从 JSON 中提取:
fields[] 中 purpose=USERNAME 的 value → usernamefields[] 中 purpose=PASSWORD 的 value → passwordurls[0].href → 登录页 URL⚠️ 安全规则:
text
browser open url=<登录页URL>
browser snapshot → 找用户名输入框、密码输入框、登录按钮的 ref
browser act kind=type ref=<用户名框> text=<username>
browser act kind=type ref=<密码框> text=<password>
browser act kind=click loadState=networkidle ref=<登录按钮>
browser snapshot → 确认已离开登录页(登录成功)
任务类型操作截图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 然后截个首页截图
用户: 用 1Password 登录 GitHub 下载最新 release