A native GTK4/libadwaita password manager for Linux. The fourth app in the
family around sdr-for-linux,
skimmer-for-linux and
log-for-linux, sharing their
technology and architecture: a headless, GLib-only engine under a
GTK4/libadwaita front-end, plain C11, meson.
It is a front-end for the pass password
store — the same directory of GPG-encrypted files, read and written in place.
pass on the command line and this app can be used on one store
interchangeably; neither needs to know about the other.
Status: M5 — feature-complete against the spec. TOTP codes are computed natively (libgcrypt HMAC in secure memory, RFC 6238-verified) and shown live with a countdown ring; HOTP generates like
pass otp, counter bump and commit message included. Everything below M5 holds: the full operation set with selective re-encryption, git withpass-compatible messages, history with plaintext diffs, recipient view. Conformance-tested againstpass1.7.4 and pass-otp 1.2.0. Remaining: packaging (M6). Readdocs/SPEC.md.
pass is a 720-line bash script whose best property is that it has no format of
its own: entries are *.gpg files in a directory tree, recipients live in
.gpg-id, history is plain git. That survives its own tooling. What it lacks is
a graphical client that is actually native — the existing ones are a Rust TUI, Qt,
or web pages in an Electron wrapper.
Nothing here reimplements GnuPG. Crypto goes through GPGME, git through libgit2, passphrases through gpg-agent and its pinentry — all C libraries, all already packaged.
- Anything written here must be readable by
pass1.7.4 — including the git commit messages. - No subprocesses: never spawn
pass,gpgorgit. - Nothing decrypted ever reaches persistent storage.
- No network except git remotes the user configured. No telemetry, no account.
GPL-3.0-or-later. Richard Fakenberg, OK1BR.