在 OpenClaw 仪表板中添加 1Password UI 标签页,在控制界面中管理密钥、凭证映射和认证状态。
1Password UI 扩展. 将 1Password 标签添加到工具组下的 OpenClaw 控制仪表板. 浏览金库,管理技能的证书映射,并处理认证 - 全是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
在 OpenClaw 控制台的 Tools 分组下添加一个 1Password 标签页。您可直接通过 Web UI 浏览保险库、管理技能的凭据映射,以及处理身份验证。
| 功能 | 说明 |
|---|---|
| 控制台标签页 | 侧边栏中 Tools 下的 “1Password” 标签 |
| 连接状态 | 显示已登录账户及 CLI / Connect 模式 |
| 登录流程 | 直接从 UI 完成身份验证 |
| Docker 支持 | 兼容面向容器的 1Password Connect |
| 凭据映射 | 将 1Password 条目映射至技能配置 |
如需安装该技能,请向您的 agent 提供以下提示:
从 ClawHub 安装 1password-ui 技能。 该技能位于:~/clawd/skills/1password-ui/ 请按 INSTALL_INSTRUCTIONS.md 中的步骤逐一执行。 需修改内容概要: 1. 将 1password-backend.ts 复制到 src/gateway/server-methods/1password.ts 2. 在 server-methods.ts 中注册处理器 3. 在 navigation.ts 中添加 “1password” 标签(包括 TAB_GROUPS、Tab 类型、TAB_PATHS、图标、标题、副标题) 4. 在 app.ts 中添加状态变量 5. 将 1password-views.ts 复制到 ui/src/ui/views/1password.ts 6. 在 app-render.ts 中添加视图渲染逻辑 7. 在 app-settings.ts 中添加标签加载逻辑 8. 构建并重启:pnpm build && pnpm ui:build && clawdbot gateway restart
1Password CLI(op):
# macOS/Linux brew install 1password-cli # 或从 https://1password.com/downloads/command-line/ 下载
启用 CLI 集成(在 1Password 应用中):
详见下方 Docker 配置说明。
op signin)完成登录后,即可将 1Password 条目映射至技能:
~/clawd/config/1password-mappings.json 中{ "skillId": { "item": "Item Name", "vault": "Private", "fields": {...} } }# 将 Pipedream 凭据存入 1Password op item create --category="API Credential" --title="Pipedream Connect" --vault="Private" "client_id[text]=your_client_id" "client_secret[password]=your_client_secret" "project_id[text]=proj_xxxxx" # 在 token 刷新脚本中使用 PIPEDREAM_1PASSWORD_ITEM="Pipedream Connect" python3 ~/clawd/scripts/pipedream-token-refresh.py
| 方法 | 说明 |
|---|---|
1password.status |
获取 CLI / Connect 状态及已登录账户信息 |
1password.signin |
触发登录流程 |
1password.signout |
退出当前会话 |
1password.vaults |
列出可用保险库 |
1password.items |
列出指定保险库中的条目 |
1password.getItem |
获取条目的字段结构(不含实际值) |
1password.readSecret |
读取密钥(仅限后端调用) |
1password.mappings.list |
获取技能 → 1Password 映射关系 |
1password.mappings.set |
创建或更新映射 |
1password.mappings.delete |
删除映射 |
1password.mappings.test |
测试映射是否有效 |
对于基于 Docker 的 OpenClaw 部署,请使用 1Password Connect 替代 CLI。
# docker-compose.yml
services:
op-connect-api:
image: 1password/connect-api:latest
ports:
- "8080:8080"
volumes:
- ./1password-credentials.json:/home/opuser/.op/1password-credentials.json:ro
- op-data:/home/opuser/.op/data
op-connect-sync:
image: 1password/connect-sync:latest
volumes:
- ./1password-credentials.json:/home/opuser/.op/1password-credentials.json:ro
- op-data:/home/opuser/.op/data
volumes:
op-data:
1password-credentials.jsonservices:
clawdbot:
environment:
- OP_CONNECT_HOST=http://op-connect-api:8080
- OP_CONNECT_TOKEN=your-access-token
UI 会自动识别 Connect 模式。
1password-ui/
├── SKILL.md # 本文档
├── INSTALL_INSTRUCTIONS.md # 分步安装说明
├── CHANGELOG.md # 版本历史
├── package.json # 技能元数据
├── reference/
│ ├── 1password-backend.ts # 网关 RPC 处理器
│ ├── 1password-views.ts # UI 视图(Lit 模板)
│ ├── 1password-settings.ts # 标签页加载逻辑
│ └── 1password-plugin.ts # 插件注册(可选)
└── scripts/
└── op-helper.py # CLI / Connect 桥接脚本(供技能使用)
| 方面 | 实现方式 |
|---|---|
| 密钥不暴露于 UI | getItem 和 items 仅返回字段名,永不返回实际值 |
| 无网络安装器 | 不使用 curl | sh 或远程脚本 —— 所有代码均在本地 |
| 手动安装 | 需显式修改代码,不支持自动补丁 |
| 映射文件权限 | 1password-mappings.json 文件权限应设为 0600(仅含引用信息,不含密钥) |
| CLI 认证 | 利用 1Password 应用集成,在支持时采用生物识别认证 |
| 风险 | 缓解措施 |
|---|---|
readSecret RPC 方法已开放 |
1password.readSecret 方法确经网关 RPC 暴露。此为有意设计——技能需读取密钥。安全性依赖于:(1) 1Password 强制用户身份验证;(2) 网关访问控制(默认仅限回环地址)。 |
| 网关暴露风险 | 所有 1password.* 方法均为 RPC 调用。若您将网关暴露于网络,请务必启用身份验证保护。 |
| Connect 令牌 | 在 Docker 模式下,OP_CONNECT_TOKEN 授予保险库访问权限。请像保管任何 API 密钥一样妥善保护它。 |
# 建议对映射文件设置如下权限 chmod 600 ~/clawd/config/1password-mappings.json
brew install 1password-cli # 或从 1password.com/downloads/command-line/ 下载
op signin op whoami # 验证是否成功
docker ps | grep op-connect # 检查容器是否正在运行
OP_CONNECT_TOKEN 已正确设置相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.8万人学习
共49课时 | 82.4万人学习
最新文章