Управление секретами 1Password
kcmadden/claude-code-1password-skillСкилл для Claude Code, интегрирующий 1Password в AI-рабочие процессы разработчика. Позволяет хранить, читать и подставлять API-ключи и токены через op:// ссылки — без хардкода секретов и без их попадания в историю shell.
Установка
git clone https://github.com/kcmadden/claude-code-1password-skill.gitREADME
Claude Code 1Password Skill
Скилл для Claude Code, интегрирующий управление секретами 1Password в AI-рабочие процессы разработчика.
Прекратите хардкодить API-ключи. Прекратите копировать секреты из браузера в терминал. Доверьте это 1Password и Claude.
Что умеет
- Сохранять API-ключи, токены и учётные данные в 1Password прямо из чата Claude Code
- Читать секреты через
op://ссылки — секреты никогда не попадают на диск или в историю shell - Генерировать файлы
.env.tplсо ссылками на секреты (безопасно коммитить) из любого элемента 1Password - Ротировать учётные данные одной командой с последующей повторной подстановкой везде
- Интегрироваться с Claude Desktop, n8n, Docker, GitHub Actions, Python, Supabase и Replit
Установка
Клонируйте в директорию скиллов Claude Code:
git clone https://github.com/kcmadden/claude-code-1password-skill.git \
~/.claude/skills/1passwordЕсли скилл уже установлен, обновите его:
cd ~/.claude/skills/1password && git pull
Затем перезапустите Claude Code (или начните новую сессию).
Требования:
- 1Password CLI v2+ (
op) - Выполнен вход:
op signin
Использование
После установки Claude Code автоматически загружает этот скилл, когда вы спрашиваете о 1Password. Просто общайтесь с ним:
«Сохрани мой Anthropic API-ключ в 1Password»
«Сгенерируй .env.tpl для моего проекта из элемента Dev Credentials»
«Прочитай мой Supabase service key в этот скрипт»
«Настрой конфиг Claude Desktop MCP для использования 1Password для секретов»
«Ротируй мой n8n API-ключ и обнови 1Password»
Состав
Скрипты
| Скрипт | Назначение |
|---|---|
check_setup.sh | Проверка установки и аутентификации op CLI |
store_secret.sh | Создание или обновление секрета, вывод op:// ссылки |
env_from_op.sh | Генерация .env.tpl (ссылки) или .env (значения) из любого элемента 1Password |
Справочные материалы (загружаются по запросу, не засоряют контекст)
| Файл | Содержимое |
|---|---|
op_commands.md | Полный справочник команд CLI с актуальными флагами |
secret_references.md | Синтаксис op://, безопасные паттерны подстановки, что следует избегать |
integrations.md | Claude Desktop, n8n, Docker, GitHub Actions, Python, Supabase, Replit |
Основной паттерн
# 1. Сохраните секрет
bash scripts/store_secret.sh --title "Anthropic" --field api_key --value "sk-..."
# → op://Dev/Anthropic/api_key
# 2. Сошлитесь на него в .env.tpl (коммитьте этот файл)
echo "ANTHROPIC_API_KEY=op://Dev/Anthropic/api_key" >> .env.tpl
echo ".env" >> .gitignore
# 3. Используйте
op run --env-file=.env.tpl -- your-commandМодель безопасности
Скилл следует принципу «безопасность прежде всего»:
Безопасные паттерны (рекомендуется):
op run --env-file=.env.tpl -- your-command # секреты остаются в подпроцессе
export KEY=$(op read "op://vault/item/field") # один секрет в переменнуюПаттерны, которых следует избегать:
source <(op run --env-file=.env.tpl -- env) # ⚠️ небезопасно — метасимволы shell в значениях выполняются как код
eval $(op run ... env) # ⚠️ тот же рискПравила, встроенные в этот скилл:
- Никогда не хардкодить секреты — всегда использовать
op://ссылки - Коммитить
.env.tpl(только ссылки), никогда не коммитить.env(реальные значения) - Всегда добавлять
.envв.gitignore - Использовать хранилища для разграничения доступа по проекту или команде
- Использовать сервисные аккаунты для CI/CD — никогда не использовать личные токены в автоматизации
Пример: Claude Desktop с 1Password
Храните API-ключи MCP-серверов в 1Password вместо открытого текста в claude_desktop_config.json:
{
"mcpServers": {
"my-server": {
"command": "op",
"args": ["run", "--", "node", "/path/to/server.js"],
"env": {
"API_KEY": "op://Dev/My MCP Server/api_key"
}
}
}
}Claude Desktop запускает op run, который разрешает ссылку при старте. Реальный ключ никогда не появляется в конфигурационном файле.
Пример: среда разработки
# .env.tpl (коммитьте этот файл)
ANTHROPIC_API_KEY=op://Dev/Anthropic/api_key
SUPABASE_SERVICE_KEY=op://Dev/Supabase/service_key
N8N_API_KEY=op://Dev/n8n/api_key
# Запуск Claude Code с подставленными секретами
op run --env-file=.env.tpl -- claudeУчастие в разработке
Issues и PR приветствуются. Если вы добавляете паттерны интеграции для других инструментов, откройте PR в references/integrations.md.
Лицензия
MIT