pwdmanager

command line tool to manage passwords


License
GPL-3.0
Install
pip install pwdmanager==1.0.0

Documentation

pwdmanager

Keep your passwords safe and close

This is a command line tool to manage your passwords. Those are stored locally in an encrypted JSON formatted file. The encryption and decryption is performed by GPG. Passwords unlocking is done using a master password.

Benefits of using this program include :

  • use difficult and different passwords to secure your accounts
  • you don't have to trust third parties for storing your passwords : everything is stored locally
  • provide high end and reliable encryption with GPG
  • it is open source : anybody can check the code

installation

With pip or your favorite package manager:

pip install pwdmanager
pipenv install pwdmanager
poetry add pwdmanager

That's it.

If you want to build the wheel yourself you have to have poetry installed. Then change directory to the root of the sources and issue:

poetry build

Then you can install the wheel with your favorite package manager:

pip install dist/pwdmanager-XXX-py3-none-any.whl
pipenv install dist/pwdmanager-XXX-py3-none-any.whl
poetry add pwdmanager --path=dist/pwdmanager-XXX-py3-none-any.whl

requirements

You need to have GPG installed.

database

The database is a local JSON file. It is encrypted. At first usage it will be initialised. The default location is ~/.pwddb but you can provide you own location.

concepts

An entry in basically a container for an account information. The password database is a list of entries. An entry has the following attributes:

name
this is an id of the entry. Two entries cannot have the same name.
login
account login
password
account password
login alias
a second or alternative account login
aliases
one entry can have several aliases. Each alias is an id of the entry. Two entries cannot have the same alias. Useful to provide easier to match or remember names
tags
one entry can have several tags. Useful to categorize entries. You can search with tags
creation date
entry creation date. Immutable.
last update date
obvious

usage

usage: pwdmanager [-h] [-d DATABASE] [-p MASTER_PASSWORD]
                    {add,show,list,rm,update} ...

positional arguments:
  {add,show,list,rm,update}

optional arguments:
  -h, --help            show this help message and exit
  -d DATABASE, --database DATABASE
                        specify where the database is located
  -p MASTER_PASSWORD, --master-password MASTER_PASSWORD
                        password to crypt and decrypt the database

There are 5 main commands:

add
to add a new entry
show
to list all the attributes of a particular entry, you have to give the exact name or alias of an entry
list
to look for entries. Can be used without any parameter, in that case all entries will be listed. You can also provide a string, then all the entries with name or aliases containing this string will be listed. You can filter by tag also.
rm
to remove an entry. No confirmation asked, be careful.
update
to modify an entry

For all those commands, use the -h/--help flag to have details about parameters:

pwdmanager add -h

be careful

  • Choose your master password wisely. Do not forget it or you won't be able to recover your database
  • When adding a password you specify it in the command. Thus it may be stored in the shell history. Therefore I strongly recommend to clean your history after adding passwords. On linux sed -i /^pwdmanager/d ~/.bash_history will do the trick in most cases.
  • When adding a password I recommend you surround it by single quotes because special characters may be interpreted by the shell
  • back your password database up