Loading...
Loading...
Encrypted credential store — add, retrieve, list, and delete named secrets (API keys, tokens, passwords) stored AES-256-GCM encrypted at ~/.aibtc/credentials.json. Each write operation requires the master password; listing metadata does not.
npx skill4agent add aibtcdev/skills credentials~/.aibtc/credentials.jsonbun run credentials/credentials.ts <subcommand> [options]bun run credentials/credentials.ts add --id <id> --value <value> --password <pass> [--label <text>] [--category <cat>]--idhiro-api-keyopenrouter-token--value--password--label--categoryapi-keytokenurlsecretsecret{
"success": true,
"id": "hiro-api-key",
"label": "Hiro API Key",
"category": "api-key",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}bun run credentials/credentials.ts get --id <id> --password <pass>--id--password{
"id": "hiro-api-key",
"label": "Hiro API Key",
"category": "api-key",
"value": "hiro_api_key_xxxxxxxxxxxxxxxx",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Tip: Extract the value in scripts with$(bun run credentials/credentials.ts get --id hiro-api-key --password $CRED_PASS | jq -r .value)
bun run credentials/credentials.ts list{
"count": 2,
"credentials": [
{
"id": "hiro-api-key",
"label": "Hiro API Key",
"category": "api-key",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}bun run credentials/credentials.ts delete --id <id> --password <pass> --confirm DELETE--id--password--confirmDELETE{
"success": true,
"deleted": "hiro-api-key",
"message": "Credential \"hiro-api-key\" has been permanently deleted."
}bun run credentials/credentials.ts rotate-password --old-password <pass> --new-password <pass>--old-password--new-password{
"success": true,
"message": "Password rotated. 3 credentials re-encrypted.",
"count": 3
}--password~/.aibtc/credentials.jsondeleterotate-password