# 1password

> 使用 1Password CLI (op) 管理密码和 API credentials。保存、查询、读取 API key/token，注入环境变量到脚本。当用户提到保存密码、保存 API key、查询密码、1password、op CLI、secret 管理时使用此 skill。

- Skill: `tuyv/1password` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add tuyv/1password`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tuyv/1password/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: tuyv (https://skillmd.com/u/tuyv)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tuyv/1password

---


# 1Password CLI

使用 `op` CLI 管理 1Password vault 中的密码和 API credentials。

## 前置检查

使用前确认 `op` 已安装并已集成桌面 App：

```bash
op --version
```

未安装则引导安装：

```bash
brew install --cask 1password-cli
```

安装后需在 1Password 桌面 App 中开启集成：Settings → Developer → Integrate with 1Password CLI。

---

## 保存 API Credential

用户提供 API Key 信息时，使用以下命令保存。字段按实际提供情况填写，未提供的字段省略。

**标题命名规范：** `{服务商} API Key - {用途标识}`（如 `OpenAI API Key - agent`）

```bash
op item create \
  --category="API Credential" \
  --title="{标题}" \
  --vault="Personal" \
  "credential={API Key}" \
  "website[url]={网站 URL}" \
  "base_url[text]={API base URL}" \
  "username[text]={邮箱或用户名}" \
  "用途说明[text]={用途描述}" \
  "过期时间[text]={YYYY-MM-DD}" \
  "创建日期[text]={YYYY-MM-DD}" \
  --tags "{服务商},{项目标签}"
```

**最小必填字段：** `credential`（API Key 本身）。其余字段按用户提供情况填入。

---

## 查询/搜索条目

按标题或 URL 关键词模糊查找：

```bash
op item list --format=json | python3 -c "
import json, sys
items = json.load(sys.stdin)
keyword = '{关键词}'.lower()
for i in items:
    title_match = keyword in i['title'].lower()
    url_match = any(keyword in str(u) for u in i.get('urls', []))
    if title_match or url_match:
        print('ID:', i['id'], '| Title:', i['title'], '| Updated:', i.get('updated_at', ''))
"
```

---

## 读取 Credential

```bash
# 读取（隐藏值）
op item get "{标题}" --fields credential

# 读取（显示明文）
op item get "{标题}" --fields credential --reveal
```

---

## 注入环境变量（开发工作流）

在 `.env` 文件中使用 Secret References 代替明文，可以安全提交到 git：

```
OPENAI_API_KEY=op://Personal/OpenAI API Key - agent/credential
DEEPSEEK_API_KEY=op://Personal/DeepSeek API Key - agent skd/credential
```

运行脚本时注入真实值：

```bash
op run --env-file=.env -- your-script.sh
op run --env-file=.env -- python3 main.py
```

---

## Vault 管理

```bash
# 查看所有 vault
op vault list

# 查看某 vault 下所有条目
op item list --vault="Personal"

# 按 tag 筛选
op item list --tags "deepseek"
```

---

## 工作流示例

用户说「帮我保存 OpenAI 的 API Key：sk-xxx」时：

1. 确认 `op` 已安装可用
2. 收集信息：服务商名、API Key、网站 URL、用途、关联项目（按用户提供情况）
3. 执行 `op item create` 保存
4. 输出保存结果（ID、标题、字段列表），不显示 credential 明文

