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.
Installs into .claude/skills of the current project.
Are you the author of Output Credentials Edit?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/growthxai-output-credentials-edit)
---
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]
---
# Viewing and Editing Credentials
## When to Use This Skill
- Adding or updating API keys and secrets
- Verifying what credentials are currently stored
- Retrieving a specific credential value
- Checking credential structure before referencing in code
## Commands
### Edit (Opens `$EDITOR`)
```bash
# 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 (Single value, no editor)
```bash
# 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 (Print to stdout)
```bash
# 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 (Single value)
```bash
# 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).
## YAML Format
Credentials are stored as structured YAML with dot-notation access:
```yaml
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_...
```
## Accessing Credentials in Code
```typescript
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');
```
## Credential Merging
Per-workflow credentials deep-merge over global credentials at runtime. Workflow values take precedence:
```yaml
# Global: anthropic.api_key = "sk-ant-global"
# Workflow: anthropic.api_key = "sk-ant-workflow"
# Runtime result: credentials.get('anthropic.api_key') → "sk-ant-workflow"
```
## Troubleshooting
| 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 |
## Verification Checklist
- [ ] `npx output credentials show` prints expected values
- [ ] `npx output credentials get anthropic.api_key` returns the correct key
- [ ] No empty string values remain for required secrets
- [ ] Per-workflow credentials merge correctly with global
## Related Skills
- `output-credentials-init` — Create credentials files for the first time
- `output-credentials-env-vars` — Automatically wire credentials to env vars
- `output-dev-credentials` — Full credentials system reference