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…
View, edit, and set encrypted credentials in an Output.ai project. Use when adding secrets, updating API keys, verifying credential values, or retrieving a specific credential.
Claude Code
$ npx -y skills add growthxai/output --skill output-credentials-edit --agent claude-code
Codex
$ npx skills add growthxai/output --skill output-credentials-edit -a codex -y
Cursor
$ npx skills add growthxai/output --skill output-credentials-edit -a cursor -y
Gemini CLI
$ npx skills add growthxai/output --skill output-credentials-edit -a gemini-cli -y
GitHub Copilot
$ npx skills add growthxai/output --skill output-credentials-edit -a github-copilot -y
OpenCode
$ npx skills add growthxai/output --skill output-credentials-edit -a opencode -y
Windsurf
$ npx skills add growthxai/output --skill output-credentials-edit -a windsurf -y
name: output-credentials-edit description: View, edit, and set encrypted credentials in an Output.ai project. Use when adding secrets, updating API keys, verifying credential values, or retrieving a specific credential. allowed-tools: [Read, Bash, Glob]
# Edit global credentials npx output credentials edit # Edit environment-specific npx output credentials edit -e production npx output credentials edit -e development # Edit per-workflow credentials npx output credentials edit -w my_workflow
The file is decrypted to a temp file, opened in `$EDITOR`, then re-encrypted on save. The temp file is securely wiped (overwritten with null bytes) after closing.
Only `production` and `development` are valid environments: the worker picks the file from `NODE_ENV` and ignores any other name.
# Set a single credential by dot-notation path npx output credentials set anthropic.api_key sk-ant-... npx output credentials set openai.api_key sk-... -e production npx output credentials set stripe.secret_key sk_live_... -w payment_processing
Prefer `set` in non-interactive sessions, where `$EDITOR` can't be used. Intermediate keys are created as needed. When the new value would replace an object with a string (or the reverse), `set` asks for confirmation; pass `-y` to skip it.
# Show global credentials (plaintext — use carefully) npx output credentials show # Show environment-specific npx output credentials show -e production # Show per-workflow npx output credentials show -w my_workflow
# Get a single credential by dot-notation path npx output credentials get anthropic.api_key npx output credentials get aws.region npx output credentials get stripe.secret_key -w payment_processing
Returns the raw string value (or JSON for nested objects).
Credentials are stored as structured YAML with dot-notation access:
anthropic: api_key: sk-ant-... openai: api_key: sk-... aws: region: us-east-1 access_key_id: AKIA... secret_access_key: ... stripe: secret_key: sk_live_... webhook_secret: whsec_...
import { credentials } from '@outputai/core/credentials';
// Safe read — returns undefined if not found
const region = credentials.get('aws.region');
// Read with default
const region = credentials.get('aws.region', 'us-east-1');
// Strict read — throws MissingCredentialError if not found
const apiKey = credentials.require('anthropic.api_key');Per-workflow credentials deep-merge over global credentials at runtime. Workflow values take precedence:
# Global: anthropic.api_key = "sk-ant-global"
# Workflow: anthropic.api_key = "sk-ant-workflow"
# Runtime result: credentials.get('anthropic.api_key') → "sk-ant-workflow"| Error | Cause | Fix | |-------|-------|-----| | `MissingKeyError` | Key file not found and env var not set | Run `output credentials init` or set `OUTPUT_CREDENTIALS_KEY` | | `MissingCredentialError` | Path not found in credentials | Add the value with `npx output credentials set` or `edit` | | `InvalidCredentialsKeyError` | Key doesn't match the encrypted file, or the file is corrupted | Use the key the file was encrypted with, or re-init with `--force` (discards existing values) | | `MalformedCredentialsKeyError` | Key isn't exactly 64 hex characters | Check the key for typos, whitespace, or truncation |
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…
Wire encrypted credentials to environment variables using the credential: convention. Use when setting up LLM provider keys…
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.