krz/yoshi-cli

A password manager for the command line.

clone: git clone https://gitbay.org/krz/yoshi-cli.git

v0.2.2: README.md · raw

  1# Yoshi: A Password Manager
  2
  3A simple command-line pass manager, writtin in Python + SQLite3. This tool
  4allows you to manage accounts and generate random passwords containing ASCII
  5letters, numbers, and punctuation (min. 8 characters) or XKCD-like passphrases
  6(min. 3 words).
  7
  8See the Installation & Usage sections below for more information.
  9
 10# Table of Contents
 11
 12-   [Installation](#installation)
 13-   [Usage](#usage)
 14    -   [Arguments](#arguments)
 15-   [Contributing](#contributing)
 16
 17# Installation
 18
 19[(Back to top)](#table-of-contents)
 20
 21## PyPi
 22
 23```bash
 24pipx install yoshi-cli
 25```
 26
 27## Manual
 28
 29To run the script locally, run the following commands:
 30
 31```bash
 32git clone REPO_URL
 33cd yoshi-cli
 34pipx install .
 35```
 36
 37![Yoshi CLI Installation](https://git.sr.ht/~cxc/yoshi-cli/blob/main/examples/installation.png)
 38
 39# Usage
 40
 41[(Back to top)](#table-of-contents)
 42
 43All commands can be passed to the program with the following template:  
 44`yoshi <COMMAND> <FLAG> <PARAMETER>`
 45
 46![Yoshi CLI Help](https://git.sr.ht/~cxc/yoshi-cli/blob/main/examples/help.png)
 47
 48## Arguments
 49
 50### Summary
 51
 52<table>
 53  <thead>
 54    <tr>
 55      <td><b>Argument</b></td>
 56      <td><b>Shortcut</b></td>
 57      <td><b>Explanation</b></td>
 58    </tr>
 59  </thead>
 60  <tbody>
 61    <tr>
 62      <td>--help</td>
 63      <td>-h</td>
 64      <td>Print the welcome message</td>
 65    </tr>
 66    <tr>
 67      <td>--new</td>
 68      <td>-n</td>
 69      <td>Create a new account</td>
 70    </tr>
 71    <tr>
 72      <td>--list</td>
 73      <td>-l</td>
 74      <td>List all saved accounts</td>
 75    </tr>
 76    <tr>
 77      <td>--edit</td>
 78      <td>-e</td>
 79      <td>Edit a saved account (see below for required flags)</td>
 80    </tr>
 81    <tr>
 82      <td>--delete</td>
 83      <td>-d</td>
 84      <td>Delete a saved account (see below for required flags)</td>
 85    </tr>
 86    <tr>
 87      <td>--purge</td>
 88      <td>N/A</td>
 89      <td>Purge all accounts and delete the vault</td>
 90    </tr>
 91    <tr>
 92      <td>--encrypt</td>
 93      <td>N/A</td>
 94      <td>Encrypt the vault database (see below for required flags)</td>
 95    </tr>
 96    <tr>
 97      <td>--decrypt</td>
 98      <td>N/A</td>
 99      <td>Decrypt the vault database (see below for required flags)</td>
100    </tr>
101  </tbody>
102</table>
103
104#### Flags
105
106Flags for the `edit`, `e` command - both are required:
107
108<table>
109  <thead>
110    <tr>
111      <td><b>Argument</b></td>
112      <td><b>Shortcut</b></td>
113      <td><b>Explanation</b></td>
114    </tr>
115  </thead>
116  <tbody>
117    <tr>
118      <td>--uuid</td>
119      <td>-u</td>
120      <td>Provide the account UUID to edit</td>
121    </tr>
122    <tr>
123      <td>--field</td>
124      <td>-f</td>
125      <td>Provide the account field to edit</td>
126    </tr>
127  </tbody>
128</table>
129
130Flags for the `delete`, `d` command - this flag is required:
131
132<table>
133  <thead>
134    <tr>
135      <td><b>Argument</b></td>
136      <td><b>Shortcut</b></td>
137      <td><b>Explanation</b></td>
138    </tr>
139  </thead>
140  <tbody>
141    <tr>
142      <td>--uuid</td>
143      <td>-u</td>
144      <td>Provide the account UUID to delete</td>
145    </tr>
146  </tbody>
147</table>
148
149Flags for the `encrypt` or `decrypt` command - you must provide at least one
150when encrypting, none are required when decrypting:
151
152<table>
153  <thead>
154    <tr>
155      <td><b>Argument</b></td>
156      <td><b>Shortcut</b></td>
157      <td><b>Explanation</b></td>
158    </tr>
159  </thead>
160  <tbody>
161    <tr>
162      <td>--generate</td>
163      <td>-g</td>
164      <td>When encrypting, generate a new key</td>
165    </tr>
166    <tr>
167      <td>--keyfile</td>
168      <td>-k</td>
169      <td>When encrypting or decrypting, provide the path to a saved key file</td>
170    </tr>
171  </tbody>
172</table>
173
174![Yoshi CLI New Account](https://git.sr.ht/~cxc/yoshi-cli/blob/main/examples/accounts.png)
175
176# Contributing
177
178[(Back to top)](#table-of-contents)
179
180Any and all contributions are welcome. Feel free to fork the project, add
181features, and submit a pull request.