Keepassxc
Swamp vault backed by a running KeePassXC, reached through its Browser
Integration protocol via keepassxc-proxy — the same channel the
KeePassXC-Browser extension uses. No master password is stored: the first
call pops KeePassXC's "new connection" dialog and the resulting association
key is kept in a 0600 file.
Each secret is one entry: URL swamp://<namespace>/<key>, username = key,
password = value, in a configurable group (default swamp). list()
returns every username under swamp://<namespace>.
Requires the KeePassXC GUI to be running with the database unlocked (a
locked database triggers the unlock dialog and is retried), so it suits a
workstation, not a headless swamp serve.
2026.10.25.10
- Repo-wide republish; no functional change.
Secrets stored as entries in a running, unlocked KeePassXC, reached through its Browser Integration protocol (keepassxc-proxy). No master password is stored; access is granted once in KeePassXC's GUI.
Config Fields
| Field | Type | Description |
|---|---|---|
| namespace? | string | Host part of entry URLs (swamp://<namespace>/<key>). Defaults to the vault name, sanitised. |
| group? | string | KeePassXC group path for new entries, e.g. 'swamp' or 'Infra/swamp'. |
| proxyPath? | string | Path to keepassxc-proxy. Defaults to the macOS app bundle, else PATH. |
| associationFile? | string | Where the association key is stored (mode 0600). Defaults to ~/.config/swamp/keepassxc/<vault>.json. |
| timeoutSeconds? | number | Per-request wait; covers time spent answering KeePassXC dialogs. |
| triggerUnlock? | boolean | Ask KeePassXC to show its unlock dialog when the database is locked. |
| unlockWaitSeconds? | number | How long to keep retrying while the database is locked. |
2026.10.25.1
Changed
- README:
swamp vault putnow prompts for secrets (hidden input) instead of taking them on the command line, where shell history keeps them.
2026.10.15.9
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.8
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.6
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.5
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.4
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.3
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.2
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.15.1
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.10.14.2
Changed
- Repo-wide maintenance release: version bump to republish the current source. No schema change.
2026.09.30.1
Added
- Initial release.
@magistr/keepassxcvault backed by a running KeePassXC through the Browser Integration protocol (keepassxc-proxy, NaCl box, native-messaging framing). get/put/listover entriesswamp://<namespace>/<key>(username = key, password = value) in a configurable group, created on first write.- One-time association via KeePassXC's GUI dialog; key stored at
~/.config/swamp/keepassxc/<vault>.json(mode 0600). - Locked database:
triggerUnlockshows KeePassXC's unlock dialog and the call is retried forunlockWaitSeconds. - Idempotent
put: an unchanged value sends no update (no GUI prompt). - Reply nonces are verified to be the incremented request nonce; ciphertext failing the MAC is rejected.
- Wire-format fixtures captured from a live KeePassXC 2.7.11.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Docs keep secrets in a vault1/1earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License2/2earned
- Verified public repository2/2earned