krz/yoshi-cli

Archived

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

Commit c7e5d9fbec

c7e5d9fbec9418d856be961358e35f603bbbf523

parent: e5d61719e2

Verified · cmc

cmc <hello@cleberg.net> · 2024-11-07 03:52 UTC

configure as pypi hosted app

Layout: unified · split

.gitignore +2 −1
@@ -1,6 +1,7 @@
1.DS_Store 1.DS_Store
2.idea/ 2.idea/
3.pypirc
3venv/ 4venv/
4__pycache__/ 5__pycache__/
5*.sqlite 6*.sqlite
6*.key\ No newline at end of file 7*.key
dist/yoshi_cli-0.1.0-py3-none-any.whl added

Binary file not shown.

dist/yoshi_cli-0.1.0.tar.gz added

Binary file not shown.

pyproject.toml added +18
@@ -0,0 +1,18 @@
1[project]
2name = "yoshi-cli"
3version = "0.1.0"
4authors = [
5 { name="Christian Cleberg", email="hello@cleberg.net" },
6]
7description = "A password manager for the command line."
8readme = "README.md"
9requires-python = ">=3.8"
10classifiers = [
11 "Programming Language :: Python :: 3",
12 "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
13 "Operating System :: OS Independent",
14]
15
16[project.urls]
17Homepage = "https://github.com/ccleberg/yoshi"
18Issues = "https://github.com/ccleberg/yoshi/issues"
account.py → src/account.py renamed
crypto.py → src/crypto.py renamed
database.py → src/database.py renamed
process.py → src/process.py renamed
src/yoshi_christian_cleberg.egg-info/PKG-INFO added +198
@@ -0,0 +1,198 @@
1Metadata-Version: 2.1
2Name: yoshi_christian-cleberg
3Version: 0.1.0
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 :: GPL-3.0
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
38To run the script locally, run the following commands:
39
40```bash
41git clone REPO_URL
42```
43
44```bash
45cd yoshi
46```
47
48```bash
49pip3 install -r requirements.txt
50```
51
52```bash
53python3 main.py --help
54```
55
56# Usage
57
58[(Back to top)](#table-of-contents)
59
60All commands can be passed to the program with the following template:
61`python3 main.py <COMMAND> <FLAG> <PARAMETER>`
62
63![Yoshi CLI Help](./examples/yoshi-help.png)
64
65## Arguments
66
67### Summary
68
69<table>
70 <thead>
71 <tr>
72 <td><b>Argument</b></td>
73 <td><b>Shortcut</b></td>
74 <td><b>Explanation</b></td>
75 </tr>
76 </thead>
77 <tbody>
78 <tr>
79 <td>help</td>
80 <td>h</td>
81 <td>Print the welcome message</td>
82 </tr>
83 <tr>
84 <td>new</td>
85 <td>n</td>
86 <td>Create a new account</td>
87 </tr>
88 <tr>
89 <td>list</td>
90 <td>l</td>
91 <td>List all saved accounts</td>
92 </tr>
93 <tr>
94 <td>edit</td>
95 <td>e</td>
96 <td>Edit a saved account (see below for required flags)</td>
97 </tr>
98 <tr>
99 <td>delete</td>
100 <td>d</td>
101 <td>Delete a saved account (see below for required flags)</td>
102 </tr>
103 <tr>
104 <td>purge</td>
105 <td>N/A</td>
106 <td>Purge all accounts and delete the vault</td>
107 </tr>
108 <tr>
109 <td>encrypt</td>
110 <td>N/A</td>
111 <td>Encrypt the vault database (see below for required flags)</td>
112 </tr>
113 <tr>
114 <td>decrypt</td>
115 <td>N/A</td>
116 <td>Decrypt the vault database (see below for required flags)</td>
117 </tr>
118 </tbody>
119</table>
120
121#### Flags
122
123Flags for the `edit`, `e` command - both are required:
124
125<table>
126 <thead>
127 <tr>
128 <td><b>Argument</b></td>
129 <td><b>Shortcut</b></td>
130 <td><b>Explanation</b></td>
131 </tr>
132 </thead>
133 <tbody>
134 <tr>
135 <td>--uuid</td>
136 <td>-u</td>
137 <td>Provide the account UUID to edit</td>
138 </tr>
139 <tr>
140 <td>--field</td>
141 <td>-f</td>
142 <td>Provide the account field to edit</td>
143 </tr>
144 </tbody>
145</table>
146
147Flags for the `delete`, `d` command - this flag is required:
148
149<table>
150 <thead>
151 <tr>
152 <td><b>Argument</b></td>
153 <td><b>Shortcut</b></td>
154 <td><b>Explanation</b></td>
155 </tr>
156 </thead>
157 <tbody>
158 <tr>
159 <td>--uuid</td>
160 <td>-u</td>
161 <td>Provide the account UUID to delete</td>
162 </tr>
163 </tbody>
164</table>
165
166Flags for the `encrypt` or `decrypt` command - you must provide at least one
167when encrypting, none are required when decrypting:
168
169<table>
170 <thead>
171 <tr>
172 <td><b>Argument</b></td>
173 <td><b>Shortcut</b></td>
174 <td><b>Explanation</b></td>
175 </tr>
176 </thead>
177 <tbody>
178 <tr>
179 <td>--generate</td>
180 <td>-g</td>
181 <td>When encrypting, generate a new key</td>
182 </tr>
183 <tr>
184 <td>--keyfile</td>
185 <td>-k</td>
186 <td>When encrypting or decrypting, provide the path to a saved key file</td>
187 </tr>
188 </tbody>
189</table>
190
191![Yoshi CLI New Account](./examples/yoshi-example.png)
192
193# Contributing
194
195[(Back to top)](#table-of-contents)
196
197Any and all contributions are welcome. Feel free to fork the project, add
198features, and submit a pull request.
src/yoshi_christian_cleberg.egg-info/SOURCES.txt added +11
@@ -0,0 +1,11 @@
1LICENSE
2README.md
3pyproject.toml
4src/account.py
5src/crypto.py
6src/database.py
7src/process.py
8src/yoshi_christian_cleberg.egg-info/PKG-INFO
9src/yoshi_christian_cleberg.egg-info/SOURCES.txt
10src/yoshi_christian_cleberg.egg-info/dependency_links.txt
11src/yoshi_christian_cleberg.egg-info/top_level.txt\ No newline at end of file
src/yoshi_christian_cleberg.egg-info/dependency_links.txt added +1
@@ -0,0 +1 @@
1
src/yoshi_christian_cleberg.egg-info/top_level.txt added +4
@@ -0,0 +1,4 @@
1account
2crypto
3database
4process
src/yoshi_cli.egg-info/PKG-INFO added +198
@@ -0,0 +1,198 @@
1Metadata-Version: 2.1
2Name: yoshi-cli
3Version: 0.1.0
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
38To run the script locally, run the following commands:
39
40```bash
41git clone REPO_URL
42```
43
44```bash
45cd yoshi
46```
47
48```bash
49pip3 install -r requirements.txt
50```
51
52```bash
53python3 main.py --help
54```
55
56# Usage
57
58[(Back to top)](#table-of-contents)
59
60All commands can be passed to the program with the following template:
61`python3 main.py <COMMAND> <FLAG> <PARAMETER>`
62
63![Yoshi CLI Help](./examples/yoshi-help.png)
64
65## Arguments
66
67### Summary
68
69<table>
70 <thead>
71 <tr>
72 <td><b>Argument</b></td>
73 <td><b>Shortcut</b></td>
74 <td><b>Explanation</b></td>
75 </tr>
76 </thead>
77 <tbody>
78 <tr>
79 <td>help</td>
80 <td>h</td>
81 <td>Print the welcome message</td>
82 </tr>
83 <tr>
84 <td>new</td>
85 <td>n</td>
86 <td>Create a new account</td>
87 </tr>
88 <tr>
89 <td>list</td>
90 <td>l</td>
91 <td>List all saved accounts</td>
92 </tr>
93 <tr>
94 <td>edit</td>
95 <td>e</td>
96 <td>Edit a saved account (see below for required flags)</td>
97 </tr>
98 <tr>
99 <td>delete</td>
100 <td>d</td>
101 <td>Delete a saved account (see below for required flags)</td>
102 </tr>
103 <tr>
104 <td>purge</td>
105 <td>N/A</td>
106 <td>Purge all accounts and delete the vault</td>
107 </tr>
108 <tr>
109 <td>encrypt</td>
110 <td>N/A</td>
111 <td>Encrypt the vault database (see below for required flags)</td>
112 </tr>
113 <tr>
114 <td>decrypt</td>
115 <td>N/A</td>
116 <td>Decrypt the vault database (see below for required flags)</td>
117 </tr>
118 </tbody>
119</table>
120
121#### Flags
122
123Flags for the `edit`, `e` command - both are required:
124
125<table>
126 <thead>
127 <tr>
128 <td><b>Argument</b></td>
129 <td><b>Shortcut</b></td>
130 <td><b>Explanation</b></td>
131 </tr>
132 </thead>
133 <tbody>
134 <tr>
135 <td>--uuid</td>
136 <td>-u</td>
137 <td>Provide the account UUID to edit</td>
138 </tr>
139 <tr>
140 <td>--field</td>
141 <td>-f</td>
142 <td>Provide the account field to edit</td>
143 </tr>
144 </tbody>
145</table>
146
147Flags for the `delete`, `d` command - this flag is required:
148
149<table>
150 <thead>
151 <tr>
152 <td><b>Argument</b></td>
153 <td><b>Shortcut</b></td>
154 <td><b>Explanation</b></td>
155 </tr>
156 </thead>
157 <tbody>
158 <tr>
159 <td>--uuid</td>
160 <td>-u</td>
161 <td>Provide the account UUID to delete</td>
162 </tr>
163 </tbody>
164</table>
165
166Flags for the `encrypt` or `decrypt` command - you must provide at least one
167when encrypting, none are required when decrypting:
168
169<table>
170 <thead>
171 <tr>
172 <td><b>Argument</b></td>
173 <td><b>Shortcut</b></td>
174 <td><b>Explanation</b></td>
175 </tr>
176 </thead>
177 <tbody>
178 <tr>
179 <td>--generate</td>
180 <td>-g</td>
181 <td>When encrypting, generate a new key</td>
182 </tr>
183 <tr>
184 <td>--keyfile</td>
185 <td>-k</td>
186 <td>When encrypting or decrypting, provide the path to a saved key file</td>
187 </tr>
188 </tbody>
189</table>
190
191![Yoshi CLI New Account](./examples/yoshi-example.png)
192
193# Contributing
194
195[(Back to top)](#table-of-contents)
196
197Any and all contributions are welcome. Feel free to fork the project, add
198features, and submit a pull request.
src/yoshi_cli.egg-info/SOURCES.txt added +11
@@ -0,0 +1,11 @@
1LICENSE
2README.md
3pyproject.toml
4src/account.py
5src/crypto.py
6src/database.py
7src/process.py
8src/yoshi_cli.egg-info/PKG-INFO
9src/yoshi_cli.egg-info/SOURCES.txt
10src/yoshi_cli.egg-info/dependency_links.txt
11src/yoshi_cli.egg-info/top_level.txt\ No newline at end of file
src/yoshi_cli.egg-info/dependency_links.txt added +1
@@ -0,0 +1 @@
1
src/yoshi_cli.egg-info/top_level.txt added +4
@@ -0,0 +1,4 @@
1account
2crypto
3database
4process
src/yoshi_cli_christian_cleberg.egg-info/PKG-INFO added +198
@@ -0,0 +1,198 @@
1Metadata-Version: 2.1
2Name: yoshi-cli_christian-cleberg
3Version: 0.1.0
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
38To run the script locally, run the following commands:
39
40```bash
41git clone REPO_URL
42```
43
44```bash
45cd yoshi
46```
47
48```bash
49pip3 install -r requirements.txt
50```
51
52```bash
53python3 main.py --help
54```
55
56# Usage
57
58[(Back to top)](#table-of-contents)
59
60All commands can be passed to the program with the following template:
61`python3 main.py <COMMAND> <FLAG> <PARAMETER>`
62
63![Yoshi CLI Help](./examples/yoshi-help.png)
64
65## Arguments
66
67### Summary
68
69<table>
70 <thead>
71 <tr>
72 <td><b>Argument</b></td>
73 <td><b>Shortcut</b></td>
74 <td><b>Explanation</b></td>
75 </tr>
76 </thead>
77 <tbody>
78 <tr>
79 <td>help</td>
80 <td>h</td>
81 <td>Print the welcome message</td>
82 </tr>
83 <tr>
84 <td>new</td>
85 <td>n</td>
86 <td>Create a new account</td>
87 </tr>
88 <tr>
89 <td>list</td>
90 <td>l</td>
91 <td>List all saved accounts</td>
92 </tr>
93 <tr>
94 <td>edit</td>
95 <td>e</td>
96 <td>Edit a saved account (see below for required flags)</td>
97 </tr>
98 <tr>
99 <td>delete</td>
100 <td>d</td>
101 <td>Delete a saved account (see below for required flags)</td>
102 </tr>
103 <tr>
104 <td>purge</td>
105 <td>N/A</td>
106 <td>Purge all accounts and delete the vault</td>
107 </tr>
108 <tr>
109 <td>encrypt</td>
110 <td>N/A</td>
111 <td>Encrypt the vault database (see below for required flags)</td>
112 </tr>
113 <tr>
114 <td>decrypt</td>
115 <td>N/A</td>
116 <td>Decrypt the vault database (see below for required flags)</td>
117 </tr>
118 </tbody>
119</table>
120
121#### Flags
122
123Flags for the `edit`, `e` command - both are required:
124
125<table>
126 <thead>
127 <tr>
128 <td><b>Argument</b></td>
129 <td><b>Shortcut</b></td>
130 <td><b>Explanation</b></td>
131 </tr>
132 </thead>
133 <tbody>
134 <tr>
135 <td>--uuid</td>
136 <td>-u</td>
137 <td>Provide the account UUID to edit</td>
138 </tr>
139 <tr>
140 <td>--field</td>
141 <td>-f</td>
142 <td>Provide the account field to edit</td>
143 </tr>
144 </tbody>
145</table>
146
147Flags for the `delete`, `d` command - this flag is required:
148
149<table>
150 <thead>
151 <tr>
152 <td><b>Argument</b></td>
153 <td><b>Shortcut</b></td>
154 <td><b>Explanation</b></td>
155 </tr>
156 </thead>
157 <tbody>
158 <tr>
159 <td>--uuid</td>
160 <td>-u</td>
161 <td>Provide the account UUID to delete</td>
162 </tr>
163 </tbody>
164</table>
165
166Flags for the `encrypt` or `decrypt` command - you must provide at least one
167when encrypting, none are required when decrypting:
168
169<table>
170 <thead>
171 <tr>
172 <td><b>Argument</b></td>
173 <td><b>Shortcut</b></td>
174 <td><b>Explanation</b></td>
175 </tr>
176 </thead>
177 <tbody>
178 <tr>
179 <td>--generate</td>
180 <td>-g</td>
181 <td>When encrypting, generate a new key</td>
182 </tr>
183 <tr>
184 <td>--keyfile</td>
185 <td>-k</td>
186 <td>When encrypting or decrypting, provide the path to a saved key file</td>
187 </tr>
188 </tbody>
189</table>
190
191![Yoshi CLI New Account](./examples/yoshi-example.png)
192
193# Contributing
194
195[(Back to top)](#table-of-contents)
196
197Any and all contributions are welcome. Feel free to fork the project, add
198features, and submit a pull request.
src/yoshi_cli_christian_cleberg.egg-info/SOURCES.txt added +11
@@ -0,0 +1,11 @@
1LICENSE
2README.md
3pyproject.toml
4src/account.py
5src/crypto.py
6src/database.py
7src/process.py
8src/yoshi_cli_christian_cleberg.egg-info/PKG-INFO
9src/yoshi_cli_christian_cleberg.egg-info/SOURCES.txt
10src/yoshi_cli_christian_cleberg.egg-info/dependency_links.txt
11src/yoshi_cli_christian_cleberg.egg-info/top_level.txt\ No newline at end of file
src/yoshi_cli_christian_cleberg.egg-info/dependency_links.txt added +1
@@ -0,0 +1 @@
1
src/yoshi_cli_christian_cleberg.egg-info/top_level.txt added +4
@@ -0,0 +1,4 @@
1account
2crypto
3database
4process