krz/yoshi-cli

Archived

A password manager for the command line. cli password-manager terminal

Commit e45239b39d

e45239b39de89bc3140f9264bddff55ff8c0eb16

parent: 13cbccc00d

Unregistered key

Christian Cleberg <156287552+ccleberg@users.noreply.github.com> · 2024-11-14 17:40 UTC
committer: <noreply@github.com>

exclude egg-info from repo

Layout: unified · split

.gitignore +1
@@ -5,5 +5,6 @@ build/
5dist/ 5dist/
6venv/ 6venv/
7__pycache__/ 7__pycache__/
8yoshi_cli.egg-info/
8*.sqlite 9*.sqlite
9*.key 10*.key
yoshi_cli.egg-info/PKG-INFO deleted −196
@@ -1,196 +0,0 @@
1Metadata-Version: 2.1
2Name: yoshi-cli
3Version: 0.1.1
4Summary: A password manager for the command line.
5Author-email: Christian Cleberg <hello@cleberg.net>
6Project-URL: Homepage, https://github.com/ccleberg/yoshi
7Project-URL: Issues, https://github.com/ccleberg/yoshi/issues
8Classifier: Programming Language :: Python :: 3
9Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10Classifier: Operating System :: OS Independent
11Requires-Python: >=3.8
12Description-Content-Type: text/markdown
13License-File: LICENSE
14
15# Yoshi: A Password Manager
16
17A simple command-line pass manager, writtin in Python + SQLite3. This tool
18allows you to manage accounts and generate random passwords containing ASCII
19letters, numbers, and punctuation (min. 8 characters) or XKCD-like passphrases
20(min. 3 words).
21
22Please note that the script is written in Python 3 - you may need to run the
23script with the `python3` command instead of `python` if your system uses a
24default of Python 2. See the Installation & Usage sections below for more
25information.
26
27# Table of Contents
28
29- [Installation](#installation)
30- [Usage](#usage)
31 - [Arguments](#arguments)
32- [Contributing](#contributing)
33
34# Installation
35
36[(Back to top)](#table-of-contents)
37
38## PyPi
39
40```bash
41pip install yoshi-cli
42```
43
44## Manual
45
46To run the script locally, run the following commands:
47
48```bash
49git clone REPO_URL
50cd yoshi
51pip install .
52```
53
54# Usage
55
56[(Back to top)](#table-of-contents)
57
58All commands can be passed to the program with the following template:
59`python3 src/yoshi/cli.py <COMMAND> <FLAG> <PARAMETER>`
60
61![Yoshi CLI Help](./examples/yoshi-help.png)
62
63## Arguments
64
65### Summary
66
67<table>
68 <thead>
69 <tr>
70 <td><b>Argument</b></td>
71 <td><b>Shortcut</b></td>
72 <td><b>Explanation</b></td>
73 </tr>
74 </thead>
75 <tbody>
76 <tr>
77 <td>help</td>
78 <td>h</td>
79 <td>Print the welcome message</td>
80 </tr>
81 <tr>
82 <td>new</td>
83 <td>n</td>
84 <td>Create a new account</td>
85 </tr>
86 <tr>
87 <td>list</td>
88 <td>l</td>
89 <td>List all saved accounts</td>
90 </tr>
91 <tr>
92 <td>edit</td>
93 <td>e</td>
94 <td>Edit a saved account (see below for required flags)</td>
95 </tr>
96 <tr>
97 <td>delete</td>
98 <td>d</td>
99 <td>Delete a saved account (see below for required flags)</td>
100 </tr>
101 <tr>
102 <td>purge</td>
103 <td>N/A</td>
104 <td>Purge all accounts and delete the vault</td>
105 </tr>
106 <tr>
107 <td>encrypt</td>
108 <td>N/A</td>
109 <td>Encrypt the vault database (see below for required flags)</td>
110 </tr>
111 <tr>
112 <td>decrypt</td>
113 <td>N/A</td>
114 <td>Decrypt the vault database (see below for required flags)</td>
115 </tr>
116 </tbody>
117</table>
118
119#### Flags
120
121Flags for the `edit`, `e` command - both are required:
122
123<table>
124 <thead>
125 <tr>
126 <td><b>Argument</b></td>
127 <td><b>Shortcut</b></td>
128 <td><b>Explanation</b></td>
129 </tr>
130 </thead>
131 <tbody>
132 <tr>
133 <td>--uuid</td>
134 <td>-u</td>
135 <td>Provide the account UUID to edit</td>
136 </tr>
137 <tr>
138 <td>--field</td>
139 <td>-f</td>
140 <td>Provide the account field to edit</td>
141 </tr>
142 </tbody>
143</table>
144
145Flags for the `delete`, `d` command - this flag is required:
146
147<table>
148 <thead>
149 <tr>
150 <td><b>Argument</b></td>
151 <td><b>Shortcut</b></td>
152 <td><b>Explanation</b></td>
153 </tr>
154 </thead>
155 <tbody>
156 <tr>
157 <td>--uuid</td>
158 <td>-u</td>
159 <td>Provide the account UUID to delete</td>
160 </tr>
161 </tbody>
162</table>
163
164Flags for the `encrypt` or `decrypt` command - you must provide at least one
165when encrypting, none are required when decrypting:
166
167<table>
168 <thead>
169 <tr>
170 <td><b>Argument</b></td>
171 <td><b>Shortcut</b></td>
172 <td><b>Explanation</b></td>
173 </tr>
174 </thead>
175 <tbody>
176 <tr>
177 <td>--generate</td>
178 <td>-g</td>
179 <td>When encrypting, generate a new key</td>
180 </tr>
181 <tr>
182 <td>--keyfile</td>
183 <td>-k</td>
184 <td>When encrypting or decrypting, provide the path to a saved key file</td>
185 </tr>
186 </tbody>
187</table>
188
189![Yoshi CLI New Account](./examples/yoshi-example.png)
190
191# Contributing
192
193[(Back to top)](#table-of-contents)
194
195Any and all contributions are welcome. Feel free to fork the project, add
196features, and submit a pull request.
yoshi_cli.egg-info/SOURCES.txt deleted −17
@@ -1,17 +0,0 @@
1LICENSE
2MANIFEST.in
3README.md
4pyproject.toml
5wordlist.txt
6yoshi/__init__.py
7yoshi/__main__.py
8yoshi/account.py
9yoshi/cli.py
10yoshi/crypto.py
11yoshi/database.py
12yoshi/process.py
13yoshi_cli.egg-info/PKG-INFO
14yoshi_cli.egg-info/SOURCES.txt
15yoshi_cli.egg-info/dependency_links.txt
16yoshi_cli.egg-info/entry_points.txt
17yoshi_cli.egg-info/top_level.txt\ No newline at end of file
yoshi_cli.egg-info/dependency_links.txt deleted −1
@@ -1 +0,0 @@
1
yoshi_cli.egg-info/entry_points.txt deleted −2
@@ -1,2 +0,0 @@
1[console_scripts]
2yoshi = yoshi.cli:yoshi
yoshi_cli.egg-info/top_level.txt deleted −1
@@ -1 +0,0 @@
1yoshi