A fast CLI for storing API keys and credentials with AES-256-GCM encryption, Argon2id key derivation, and OS-keychain caching. No accounts, no sync, no servers.
Built with proven primitives
Lockr stays out of your way: a single binary, an encrypted file under your home directory, and shell-friendly output.
Authenticated encryption with a fresh nonce on every save. Tampering is detected, plaintext never touches disk.
Memory-hard key derivation tuned to make brute-force attacks against your master password impractical.
Master password is held in macOS Keychain, Secret Service, or Windows Credential Manager. Flush anytime with lockr lock.
Organize with work/stripe_key, personal/github. Export an entire group at once.
Use --copy to put a secret straight on your clipboard — never prints, never shoulder-surfed.
Secrets older than 90 days are flagged in lockr list so stale credentials don't quietly outlive their welcome.
Designed to feel like git: predictable, scriptable, fast.
Creates an encrypted vault at ~/.lockr/vault.enc, derives your encryption key with Argon2id, and caches the master password in your OS keychain.
Use group/key syntax to namespace. Bare keys land in the default group.
Print to stdout, or pass --copy / -c to send straight to the clipboard without echoing.
Values are masked. Anything older than 90 days is annotated with a rotation hint.
Wrap with eval $(...) to load secrets into the current shell. One key, or an entire group.
Single key by default. Pass --group / -g to drop the whole namespace.
Removes the cached master password from the OS keychain. Next call prompts you again.
Permanently deletes ~/.lockr/ and clears the cached master password from the OS keychain. Pass --force / -f to skip the confirmation. This is irreversible.
Lockr derives an encryption key from your password with Argon2id, encrypts your vault with AES-256-GCM, and writes a fresh nonce on every save. Vault metadata is authenticated — silent tampering is impossible.
// simplified — see internal/crypto for the real thing.
A typical morning, scripted.
// .envrc — direnv loads work secrets when you cd into the repo
// Makefile — never commit a token, never paste one
// Github Actions runner setup (self-hosted)
// shell function: copy a secret with a hotkey
Pick your platform.
// arm64? swap x86_64 for arm64
After install, run lockr init once and you're done.
Lockr is a single 6 MB binary. It runs locally. It does one thing well.