agentsclimarketplace

Kdbx

Skill yarrasys/extensions/skills/kdbx

Read/write KeePassXC .kdbx vaults to manage per-project/per-env credentials (init/get/set/list/delete/run/export/import/check/envs/mv/rekey). Replaces .env as the source of truth; injects secrets into commands without printing them. Use when a project needs to store, retrieve, or run commands with secrets/API keys/tokens.From its SKILL.md

Install
npx -y skills add yarrasys/extensions --skill kdbx

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `kdbx --version` and 1 more.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://raw.githubusercontent.com/yarrasys/kdbx/main/install.sh.

SKILL.md

5.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

kdbx — KeePassXC credentials skill

Manage a project's secrets in per-project, per-env KeePassXC vaults (<keepassxc-dir>/<project>/<env>.kdbx, key-file-only, KDBX4+Argon2) and get them into tools without printing them into the transcript, logs, or shell history.

When to use

  • A project needs to store / retrieve / rotate secrets, API keys, or tokens.
  • You need to run a command that requires secrets in its env (kdbx run -- …).
  • You're replacing a .env file with a managed source of truth.

Discovery is automatic: kdbx walks up from the cwd to a committed .keepassxc.json (see references/schema.md). Active env = --env$KDBX_ENV › the pointer's defaultEnv.

Invocation

kdbx is a standalone binary. Check it is present, and install it if not:

kdbx --version    # if this fails, install:
curl -LsSf https://raw.githubusercontent.com/yarrasys/kdbx/main/install.sh | sh

Then invoke operations directly from the project directory:

kdbx <op> [args]

Discovery is automatic: kdbx walks up from the cwd to a committed .keepassxc.json. Active env = --env$KDBX_ENV › the pointer's defaultEnv.

Other install methods: brew install yarrasys/tap/kdbx, go install github.com/yarrasys/kdbx@latest (Go 1.25+), or the ghcr.io/yarrasys/kdbx container image.

Legacy (uv) fallback. The original Python implementation still lives at skills/kdbx/kdbx.py and is invoked as uv run --locked <SKILL_DIR>/kdbx.py <op>. It is frozen as the reference implementation, receives bug fixes only, and will be archived at kdbx v1.0. Prefer the binary.

Operations

--json is a global flag: it renders machine-readable output for the read operations (get / list / check / envs).

OpUse
init [--env E]create the vault + keyfile for an env (refuses to overwrite; 0600)
set PATH [--var NAME] [--from-env VAR] [--raw]store a secret (value via stdin/--from-env, never argv); optionally register a var mapping
get PATH [--reveal|--clip]masked by default; --reveal prints; --clip copies (auto-clears)
list [GROUP]list entry paths (never values; excludes Recycle Bin)
delete PATH [--purge]soft-delete to Recycle Bin; --purge removes permanently
mv OLD NEWrename/move an entry; rewrites affected var mappings
run [--env E] -- CMD…inject the env's mapped vars into a child process and exec it
export [--out F]render mapped vars as a 0600 dotenv (for tools that need a file)
import FILEread an existing .env into the vault + var map
checkverify every mapped var resolves (non-zero exit on drift)
envslist configured envs; mark the active one
rekey [--env E]rotate the keyfile
mcprun a read-only MCP server over stdio (kdbx_list/envs/check/get-masked/run)
guard --hook pretooluseevaluate a PreToolUse hook payload on stdin; deny agent-issued human-only ops

Exit codes: 0 ok · 2 not-found · 3 locked/keyfile-missing · 4 destructive op not confirmed (delete --purge / rekey without an interactive y) · 5 drift · 6 vault-changed · 7 runtime.

Roles — who runs what

🔑 The agent reads and uses secrets; the human performs writes.

  • Agent (you, in this session): run, get (masked), list, check, envs, init. For anything that mutates the vault (set / delete / mv / import / rekey) or exposes a value (get --reveal / --clip, export), emit the exact command for the human to run in their own terminal (or via !kdbx … in this prompt) — do not run it yourself.
  • Human: runs those write/expose commands; irreversible ones (delete --purge, rekey) ask for an interactive y/N.
  • The kdbx plugin enforces this with a PreToolUse hook (your write commands are blocked; the human's ! commands pass through untouched). The bare skill states it as a contract.
  • The real prod boundary is key-file possession, not a name match — you can only reach an env's secrets if its key file exists on this machine.

Security — do / don't (read before using)

  • 🔑 Never author or observe a secret value. Your job is the entry PATH / var-name only. To store a value, the human runs set and pipes the secret on their terminal (kdbx set api/openai < secret.txt, or types it at the getpass prompt).
  • Never do echo SECRET | kdbx set … or export SECRET=…; kdbx set --from-env SECRET inside this session — that puts the plaintext in the transcript. Both are forbidden.
  • Prefer kdbx run -- <cmd> (inject, never print) over export/get --reveal.
  • The keyfile is the sole secret; losing it makes the vault unrecoverable. Back it up out-of-band.

References

  • references/schema.md — the full .keepassxc.json schema + path grammar.
  • references/fallback.md — read-only keepassxc-cli commands (per-OS binary locations).
  • references/security.md — threat model, trust boundary, rotation / leak runbook.

What ships with it: 37 files

530.9 KB alongside SKILL.md, 25 of them executable

kdbx_core/

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.