Skip to content
Back to skills

Output Credentials Edit

ASecurity

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.

  • 440 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aitypescriptbashnodeawsapi

Works with

  • api

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add growthxai/output --skill output-credentials-edit --agent claude-code

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.

Security grade badge for Output Credentials Edit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/growthxai-output-credentials-edit/badge)](https://www.skillsdirectory.com/skills/growthxai-output-credentials-edit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.