Skip to content

Instantly share code, notes, and snippets.

@atoponce
Last active May 26, 2022 01:59
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atoponce/7ba2e99f46f9e722bb84a5d63db4f6f1 to your computer and use it in GitHub Desktop.
Save atoponce/7ba2e99f46f9e722bb84a5d63db4f6f1 to your computer and use it in GitHub Desktop.
Commandline password managers for Unix-like operating systems

Must be updated within the past two years (May 2020) to be on this list. Listed in alphabetical order:

  • 1Password CLI1 and CLI2
    • Written by the 1Password team.
    • Written in Go using the Cobra library.
    • CLI2 has new sub-command syntax that differs from CLI1.
    • JSON output is difficult to work with.
    • Requires 1Password account.
    • Proprietary software.
  • bw
    • Written by the Bitwarden team.
    • Written in TypeScript.
    • JSON output is difficult to work with.
    • Requires Bitwarden account.
  • gopass
    • Written by the developers at JustWatch.
    • Written in Go.
    • Requires GPG keys.
    • Each entry stored in its own file (information leak).
    • Supports encrypting entries to multiple keys and sharing with teams.
  • keepassxc-cli
    • Written by the KeepassXC team.
    • Written in C++.
    • Ships both a GUI and CLI in a single package.
    • Supports key files and Yubikey.
    • Interactive shell.
  • kpcli
    • Written by Lester Hightower.
    • Written in Perl.
    • Supports key files.
    • Interactive shell.
    • Only supports KDBX 1.x and 2.x.
  • napa
    • Written by Jacob Garber.
    • Written in Rust using libsodium.
    • Interactive shell.
    • Currently "alpha" software.
  • pass
    • Written by Linux kernel developer Jason Donenfeld.
    • Written in Bash.
    • Requires GPG keys.
    • Each entry stored in its own file (information leak).
    • Does not keep password history.
  • passage
    • Written by cryptographer Filippo Valsorda.
    • Written in Bash.
    • Requires Age keys.
    • Each entry stored in its own file (information leak).
    • Does not keep password history.
  • pwsafe
    • Written initially by cryptographer Bruce Schneier, now maintained by the Password Safe team.
    • Written in C++.
    • Ships both a GUI and CLI in a single package.
    • Different from this pwsafe, which is a 3rd party implementation by Nicolas Dade.
  • YAPET
    • Written by Rafael Ostertag.
    • Written in C++ using OpenSSL.
    • Curses based interactive text UI.
    • Master password stretched with Argon2.
    • Interactive shell.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment