output-build-workflow
Implement an Output SDK workflow from a plan document. Use when the user asks to build, implement, or code a workflow from an…
Wire encrypted credentials to environment variables using the credential: convention. Use when setting up LLM provider keys (ANTHROPIC_API_KEY, OPENAI_API_KEY) or any env var that should come from encrypted credentials.
Claude Code
$ npx -y skills add growthxai/output --skill output-credentials-env-vars --agent claude-code
Codex
$ npx skills add growthxai/output --skill output-credentials-env-vars -a codex -y
Cursor
$ npx skills add growthxai/output --skill output-credentials-env-vars -a cursor -y
Gemini CLI
$ npx skills add growthxai/output --skill output-credentials-env-vars -a gemini-cli -y
GitHub Copilot
$ npx skills add growthxai/output --skill output-credentials-env-vars -a github-copilot -y
OpenCode
$ npx skills add growthxai/output --skill output-credentials-env-vars -a opencode -y
Windsurf
$ npx skills add growthxai/output --skill output-credentials-env-vars -a windsurf -y
name: output-credentials-env-vars description: "Wire encrypted credentials to environment variables using the credential: convention. Use when setting up LLM provider keys (ANTHROPIC_API_KEY, OPENAI_API_KEY) or any env var that should come from encrypted credentials." allowed-tools: [Read, Edit, Bash, Glob]
Any env var whose value starts with `credential:` is resolved from encrypted credentials at worker startup. The format is:
ENV_VAR_NAME=credential:<dot.path>
# These are resolved automatically from the global credentials ANTHROPIC_API_KEY=credential:anthropic.api_key OPENAI_API_KEY=credential:openai.api_key # Any credential path works MY_SERVICE_TOKEN=credential:my_service.token DATABASE_URL=credential:postgres.url
anthropic: api_key: sk-ant-... # → resolves ANTHROPIC_API_KEY openai: api_key: sk-... # → resolves OPENAI_API_KEY my_service: token: tok_live_... # → resolves MY_SERVICE_TOKEN postgres: url: postgres://... # → resolves DATABASE_URL
When the worker starts, every env var set to `credential:<path>` is replaced with the decrypted value at that path. By the time a workflow runs, `ANTHROPIC_API_KEY` holds the real key and LLM SDKs read it as usual.
Values come from the global credentials for the current environment: `config/credentials/<NODE_ENV>.yml.enc` when it exists, otherwise `config/credentials.yml.enc`. Workflow-scoped credentials are never used for env vars, so keep these paths in the global file.
Real env var values always take precedence. If `ANTHROPIC_API_KEY` is already set to a non-`credential:` value (e.g. from the shell or a CI secret), it is **never overwritten**:
# Real value - never replaced ANTHROPIC_API_KEY=sk-ant-real-override # Placeholder — gets replaced at startup ANTHROPIC_API_KEY=credential:anthropic.api_key
This means you can override any credential ref at deploy time without changing files.
npx output credentials init npx output credentials edit # Add anthropic.api_key, openai.api_key
# Replace plaintext secrets with credential references ANTHROPIC_API_KEY=credential:anthropic.api_key OPENAI_API_KEY=credential:openai.api_key
Start the worker and look for the log line:
[info] Credentials: Resolved credential env vars { vars: [ "ANTHROPIC_API_KEY", "OPENAI_API_KEY" ] }If the log line lists your env vars, credentials are wired correctly.
The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code — describe what you want, Claude builds it, with all the best practices already in place. One framework.
Implement an Output SDK workflow from a plan document. Use when the user asks to build, implement, or code a workflow from an…
View, edit, and set encrypted credentials in an Output.ai project. Use when adding secrets, updating API keys, verifying…
Initialize encrypted credentials for an Output.ai project. Use when setting up credentials for the first time, adding…
Debug Output SDK workflow issues. Use when user reports a workflow failing, erroring, hanging, producing wrong results, or asks…
Use the Agent class for multi-step tool loops, conversation history, streaming progress, and reusable LLM agents. Use when…
Code style conventions for Output SDK workflow projects. Use when writing or reviewing any TypeScript/JavaScript code. Discovers…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.