| name | secrets |
| description | Securely execute commands requiring API keys without exposing secrets in session logs |
The Rule
NEVER let secrets appear in session logs. This means:
- No
cat ~/.secrets/*
- No
echo $API_KEY
- No
curl -H "Authorization: Bearer sk-actual-key"
- No reading secret files with the Read tool
ALWAYS use self-destructing scripts that keep secrets internal.
Where Secrets Live
~/.secrets/
├── openai.env # OPENAI_API_KEY=sk-...
├── jira.json # {"apiToken": "...", "email": "...", "domain": "..."}
├── cloudflare.ini # [cloudflare]\napi_token=...
├── github.env # GH_TOKEN=ghp_...
└── aws.env # AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
Files can be any format (.env, .json, .ini, .yaml). You figure out how to parse them.
The Pattern
When you need to use secrets, write a self-destructing script:
cat > /tmp/vault-XXXXXX.sh << 'EOF'
set +x
API_KEY=$(jq -r '.apiToken' ~/.secrets/jira.json)
EMAIL=$(jq -r '.email' ~/.secrets/jira.json)
curl -s -X GET \
-H "Authorization: Basic $(echo -n | base64)" \
-f
EOF
700 /tmp/vault-XXXXXX.sh
/tmp/vault-XXXXXX.sh