Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Manages secrets and API keys in the macOS Keychain using the security CLI. Triggered when a user asks to store, retrieve, list, rotate, or delete tokens and credentials. Uses a consistent naming convention with the bbmisa account and uppercase service names. Never exposes secrets in plaintext output or commits them to git.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
Store, retrieve, list, rotate, and delete secrets in the macOS Keychain via the security CLI.
All entries use a consistent format:
bbmisa (always -a bbmisa)GITHUB_PERSONAL_ACCESS_TOKEN)This ensures secrets are easily discoverable and follow a predictable pattern.
bashsecurity add-generic-password -a bbmisa -s SERVICE_NAME -w "token_value"
To update an existing entry (overwrite):
bashsecurity add-generic-password -a bbmisa -s SERVICE_NAME -w "new_token_value" -U
The -U flag updates the password if the entry already exists.
bashsecurity find-generic-password -a bbmisa -s SERVICE_NAME -w
Returns only the password value to stdout. Use in scripts:
bashTOKEN=$(security find-generic-password -a bbmisa -s SERVICE_NAME -w 2>/dev/null)
Search by pattern:
bashsecurity dump-keychain | grep "svce" | grep -i "pattern"
List all Berna-managed secrets:
bashsecurity dump-keychain | grep -A4 '"acct"<blob>="bbmisa"' | grep "svce"
bashsecurity delete-generic-password -a bbmisa -s SERVICE_NAME
Follow this sequence — never delete before verifying the new value:
-Ubash# Step 1: Note old value exists security find-generic-password -a bbmisa -s SERVICE_NAME -w > /dev/null 2>&1 && echo "Old value exists" # Step 2: Update with new value security add-generic-password -a bbmisa -s SERVICE_NAME -w "new_token_value" -U # Step 3: Verify security find-generic-password -a bbmisa -s SERVICE_NAME -w
Add to ~/.zshrc for automatic environment variable export:
bashexport GITHUB_TOKEN="$(security find-generic-password -a bbmisa -s GITHUB_PERSONAL_ACCESS_TOKEN -w 2>/dev/null)" export HUGGINGFACE_TOKEN="$(security find-generic-password -a bbmisa -s HUGGINGFACE_TOKEN -w 2>/dev/null)" export FIRECRAWL_API_KEY="$(security find-generic-password -a bbmisa -s FIRECRAWL_API_KEY -w 2>/dev/null)"
The 2>/dev/null suppresses errors if the key does not exist, preventing shell startup noise.
These tokens are already stored and available:
| Service Name | Used For | |----------------------------------|-----------------------------| | HUGGINGFACE_TOKEN | HuggingFace Inference API | | FIRECRAWL_API_KEY | Firecrawl web scraping | | MEM0_API_KEY | Mem0 persistent AI memory | | DAYTONA_API_KEY | Daytona dev environments | | GITHUB_PERSONAL_ACCESS_TOKEN | GitHub API and CLI auth |
.env files with real values committed to git; use .env.example with placeholderssecurity find-generic-password output end up in git historySTRIPE_LIVE_SECRET_KEY not stripe)-a bbmisa flag — without it, entries are harder to find and may collide with system entriesWhen the user asks to verify a stored secret, display it masked:
bashTOKEN=$(security find-generic-password -a bbmisa -s SERVICE_NAME -w 2>/dev/null) echo "${TOKEN:0:4}****${TOKEN: -4}"
This shows ghp_****Ab1x — enough to confirm identity without exposing the full value.
Other measured skills in the registry, with their headline benchmark lift.