A simple command-line pass manager, writtin in Python + SQLite3. This tool allows you to manage accounts and generate random passwords containing ASCII letters, numbers, and punctuation (min. 8 characters) or XKCD-like passphrases (min. 3 words).
Please note that the script is written in Python 3 - you may need to run the
script with the python3
command instead of python
if your system uses a
default of Python 2. See the Installation & Usage sections below for more
information.
To run the script locally, run the following commands:
git clone REPO_URL
cd yoshi
pip3 install -r requirements.txt
python3 main.py --help
All commands can be passed to the program with the following template:
python3 main.py <COMMAND> <FLAG> <PARAMETER>
Argument | Shortcut | Explanation |
help | h | Print the welcome message |
new | n | Create a new account |
list | l | List all saved accounts |
edit | e | Edit a saved account (see below for required flags) |
delete | d | Delete a saved account (see below for required flags) |
purge | N/A | Purge all accounts and delete the vault |
encrypt | N/A | Encrypt the vault database (see below for required flags) |
decrypt | N/A | Decrypt the vault database (see below for required flags) |
Flags for the edit
, e
command - both are required:
Argument | Shortcut | Explanation |
--uuid | -u | Provide the account UUID to edit |
--field | -f | Provide the account field to edit |
Flags for the delete
, d
command - this flag is required:
Argument | Shortcut | Explanation |
--uuid | -u | Provide the account UUID to delete |
Flags for the encrypt
or decrypt
command - you must provide at least one
when encrypting, none are required when decrypting:
Argument | Shortcut | Explanation |
--generate | -g | When encrypting, generate a new key |
--keyfile | -k | When encrypting or decrypting, provide the path to a saved key file |
Any and all contributions are welcome. Feel free to fork the project, add features, and submit a pull request.