From qe-framework
Stores, rotates, lists, deletes, and injects API keys/tokens via OS-backed secret storage (Keychain, libsecret, DPAPI). Keeps plaintext out of repo files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:QsecretThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage secrets for QE Framework without committing plaintext values into the repository.
Manage secrets for QE Framework without committing plaintext values into the repository.
.qe/secrets/registry.json~/.qe/secrets/registry.jsonThese files contain metadata only:
They do not contain the secret value.
dpapi-filekeychainlibsecretWindows uses a DPAPI-protected user store by default. This protects the value at rest, but Windows may not force a second password prompt on every read. Explain this clearly if the user asks for Chrome-like re-auth behavior.
node scripts/qe_secret.mjs doctor
node scripts/qe_secret.mjs set openai_api_key --scope global --env OPENAI_API_KEY
For non-interactive input:
printf 'sk-example' | node scripts/qe_secret.mjs set openai_api_key --scope global --env OPENAI_API_KEY --stdin
node scripts/qe_secret.mjs list
node scripts/qe_secret.mjs list --scope project
node scripts/qe_secret.mjs list --scope global
node scripts/qe_secret.mjs delete openai_api_key --scope global
node scripts/qe_secret.mjs exec --env-secret OPENAI_API_KEY=openai_api_key -- node app.js
This injects the secret into the child process environment without printing the value.
Qsecret.--scope project.--scope global.exec instead of printing or exporting the raw value..env, .qe, or tracked source files unless the user explicitly asks for that insecure behaviornpx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.