encore-secret — скилл для Claude Code: что делает и как установить
Скилл помогает хранить API-ключи и другие секреты в Encore.ts. Он подсказывает, как объявлять, читать и задавать значения по окружениям.
npx skills add encoredev/skills --skill encore-secret -a claude-code
npx skills add encoredev/skills --skill secret -a claude-codeЧто делает encore-secret
Скилл работает с secret(...) из encore.dev/config. Он объявляет секрет на уровне пакета, а затем читает его вызовом возвращённой функции, например для ключа Stripe, токена GitHub или подписи вебхука. Имена секретов едины для всего приложения.
Значения задаются командой encore secret set для окружений prod, dev, preview или local. Для локальной разработки можно создать в корне репозитория .secrets.local.cue и добавить файл в .gitignore, чтобы секреты не попали в Git.
Объявление secret(...) внутри функции нарушает правило скилла. Секреты нельзя коммитить, а локальный файл подходит именно для переопределений при разработке.
Какие задачи решает
- объявить API-ключ в Encore.ts
- читать секрет внутри обработчика
- задать разные значения для окружений
- подключить локальные секреты через
.secrets.local.cue - передать ключ в сторонний SDK
Примеры запросов агенту
- Настрой секрет для ключа Stripe в Encore.ts и покажи, где вызвать его внутри обработчика.
- Задай
OpenAIKeyдля окруженияdevчерезencore secret setи подключи его к SDK. - Создай локальное переопределение для
GitHubAPITokenв.secrets.local.cueи объясни, что добавить в.gitignore.
Как установить encore-secret
1Через Skills CLI (Vercel)
npx skills add encoredev/skills --skill encore-secret -a claude-codenpx skills add encoredev/skills --skill secret -a claude-code2Вручную: положить файлы
~/.claude/skills/secret/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/secret/
1Через Skills CLI (Vercel)
npx skills add encoredev/skills --skill secret -a codex2Вручную: положить файлы
.agents/skills/secret/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add encoredev/skills --skill secret -a cursor2Вручную: положить файлы
.cursor/skills/secret/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install encoredev/skills secret2Вручную: положить файлы
.github/skills/secret/SKILL.md1Через Skills CLI (Vercel)
npx skills add encoredev/skills --skill secret -a gemini-cli2Командой платформы
gemini skills install https://github.com/encoredev/skills --path encore/secretВручную: положить файлы
.devin/skills/secret/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add encoredev/skills --skill secret -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о encore-secret
Как установить encore-secret в Claude Code?
Выполните по порядку: npx skills add encoredev/skills --skill encore-secret -a claude-code, затем npx skills add encoredev/skills --skill secret -a claude-code. Файл скилла находится по пути ~/.claude/skills/secret/SKILL.md.
Что делает encore-secret?
Скилл описывает работу с секретами Encore: объявление через secret(...), чтение вызовом функции, настройку значений через encore secret set и локальные переопределения.
Как хранить секреты для локальной разработки?
Создайте в корне репозитория .secrets.local.cue, добавьте туда значения секретов и внесите файл в .gitignore. Для остальных окружений используйте encore secret set.
Исходный текст
SKILL.md · Apache-2.0
---
name: encore-secret
description: Manage API keys, credentials, and other secrets in Encore.ts using `secret(...)` from `encore.dev/config`.
when_to_use: >-
User wants to load a private credential into the service without committing it to the repo — third-party API keys (Stripe, OpenAI, Twilio, SendGrid), database passwords, signing keys, OAuth client secrets, JWT signing keys, webhook signing secrets. Covers `secret()` declarations, calling the secret as a function to read its value, setting values via `encore secret set`, and `.secrets.local.cue` for local overrides. Trigger phrases: "API key", "third-party token", "credentials", "without committing", "private key", "signing secret", "secret manager", ".env replacement", "encore secret set".
---
# Encore Secrets
## Instructions
Secrets are encrypted, environment-scoped values managed by Encore. Declare them at package level by calling `secret(name)` and read them by calling the returned function.
```typescript
import { secret } from "encore.dev/config";
// Package-level declaration
const stripeKey = secret("StripeSecretKey");
// Read inside a handler
async function chargeCustomer() {
const key = stripeKey(); // <-- function call returns the value
const stripe = new Stripe(key);
// ...
}
```
Secret names are globally unique across the application (the same name resolves to the same value everywhere).
## Setting values
```bash
# Set per environment type
encore secret set --type prod StripeSecretKey
encore secret set --type dev StripeSecretKey
encore secret set --type local StripeSecretKey
```
Environment types: `production` (alias `prod`), `development` (alias `dev`), `preview` (alias `pr`), `local`.
## Local overrides
For local development without going through `encore secret set`, create a `.secrets.local.cue` file at the repo root (gitignore it):
```cue
StripeSecretKey: "sk_test_local_..."
GitHubAPIToken: "ghp_local_..."
```
## Common usage patterns
```typescript
// HTTP headers
const githubToken = secret("GitHubAPIToken");
const resp = await fetch("https://api.github.com/user", {
headers: { Authorization: `token ${githubToken()}` },
});
// Webhook signature verification
const stripeWebhookSecret = secret("StripeWebhookSecret");
stripe.webhooks.constructEvent(rawBody, sig, stripeWebhookSecret());
// Connecting to a third-party SDK
const openaiKey = secret("OpenAIKey");
const openai = new OpenAI({ apiKey: openaiKey() });
```
## Guidelines
- Always declare `secret(...)` at package level, never inside functions.
- Read with a function call: `stripeKey()` not `stripeKey`.
- Set distinct values per environment via `encore secret set --type <env>`.
- Never commit secret values; use `.secrets.local.cue` for local overrides and gitignore it.
- For webhook signature secrets specifically, see also the `encore-webhook` skill.
© encoredev · Apache-2.0 · encoredev/skills