gopass
The slightly more awesome Standard Unix Password Manager for Teams. Written in Go.
Table of Contents
- Abstract
- Demo
- Features
- Installation
- Development
- Credit & License
- Community
- Contributing
- Acknowledgements
- Further Documentation
Abstract
Password management should be simple and follow Unix philosophy. With pass
, each secret lives inside of a gpg
encrypted file whose filename is the title of the website or resource that requires the secret. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities. - passwordstore.org
gopass is a rewrite of the pass password manager in Go with the aim of making it cross-platform and adding additional features. Our target audience are professional developers and sysadmins (and especially teams of those) who are well versed with a command line interface. One explicit goal for this project is to make it more approachable to non-technical users. We go by the UNIX philosophy and try to do one thing and do it well, providing a stellar user experience and a sane, simple interface.
Demo
Features
Please see docs/features.md for an extensive list of all features along with several usage examples.
Feature |
pass |
gopass |
State |
Description |
Secure secret storage |
✔ |
✔ |
stable |
Securely storing secrets encrypted with GPG |
Recipient management |
❌ |
✔ |
beta |
Easily manage multiple users of each store |
Multiple stores |
❌ |
✔ |
beta |
Mount multiple stores in your root store, like file systems |
password quality assistance |
❌ |
✔ |
beta |
Checks existing or new passwords for common flaws |
Binary support |
❌ |
✔ |
alpha |
Special handling of binary files (automatic Base64 encoding) |
K/V and YAML support |
❌ |
✔ |
alpha |
Special handling for Key/Value and YAML content in secrets |
password leak checker |
❌ |
✔ |
alpha |
Perform offline checks against known leaked passwords |
PAGER support |
❌ |
✔ |
stable |
Automatically invoke a pager on long output |
JSON API |
❌ |
✔ |
alpha |
Allow gopass to be used as a native extension for browser plugins |
Automatic fuzzy search |
❌ |
✔ |
stable |
Automatically search for matching store entries if a literal entry was not found |
gopass sync |
❌ |
✔ |
beta |
Easy to use syncing of remote repos and GPG keys |
Desktop Notifications |
❌ |
✔ |
beta |
Display desktop notifications and completing long running operations |
OTP support |
(✔) |
✔ |
stable |
Generate HOTP/TOTP tokens based on the stored secret |
Multiple Crypto Backends |
❌ |
✔ |
alpha |
Extensible crypto backend support (GPG, NaCl) |
Editing Recipients per Secret |
❌ |
✔ |
beta |
Select recipients per secret when encrypting |
Installation
If you have Go 1.10 (or greater) installed:
go get github.com/gopasspw/gopass
Otherwise, please see docs/setup.md.
Upgrade
To upgrade with Go installed, run:
go get -u github.com/gopasspw/gopass
Otherwise, use the setup docs mentioned in the installation section to reinstall the latest version.
Development
This project uses GitHub Flow. In other words, create feature branches from master, open an PR against master, and rebase onto master if necessary.
We aim for compatibility with the latest stable Go Release only.
Credit & License
gopass is maintained by the nice folks from JustWatch and licensed under the terms of the MIT license.
Maintainers of this repository:
Please refer to the Git commit log for a complete list of contributors.
gopass is developed in the open. Here are some of the channels we use to communicate and contribute:
Contributing
We welcome any contributions. Please see the CONTRIBUTING.md file for instructions on how to submit changes. If your are planning on making more elaborate or controversial changes, please discuss them on the gopass-developers mailing list or on IRC before sending a pull request.
Acknowledgements
gopass was initially started by Matthias Loibl and Dominik Schulz. The majority of its development has been sponsored by JustWatch.
Further Documentation