2.2 KiB
pash
A simple password manager using GPG.
pash
├─ dev/
│ ├─ github
├─ internet/
│ ├─ graalians
│ ├─ pixeljoint
│ ├─ nixers
└──┘
Table of Contents
Dependencies
bash 4+
gpg
orgpg2
Clipboard Support:
xclip
ortmux
Usage
Examples: pash add web/gmail
, pash list
, pash del google
, pash show github
.
SYNOPSIS
pash [ add|del|show|list ] [name] [ -cqthv ] [ -l length ]
COMMANDS
[a]dd [name]: Create a new entry in the password store.
[d]el [name]: Delete an entry from the password store.
[s]how [name]: Show password from an entry in the password store.
[l]ist: List all entries from the password store.
OPTIONS
−c Copy password to clipboard.
−l Length of generated passwords.
−q Don't print password to stdout.
-t Print list output as a tree.
−h Show usage and exit.
−v Show version and exit.
FAQ
How does this differ from pass
or etc?
I was looking for a CLI password manager (written in bash
) and wasn't happy with the options I had found. They either had multiple instances of eval
(on user inputted data), lots of unsafe bash
(no where near being shellcheck
compliant.) or they were overly complex. The opposites for what I'd want in a password manager.
I decided to write my own. pash
is written in pure bash
(minus gpg
, mkdir
and optionally xclip
.) and the codebase is minimal (150~ lines). gpg
is used to generate passwords and store the generated passwords in encrypted files.
Where are passwords stored?
The passwords are store in GPG encrypted files located at ${XDG_DATA_HOME:=$HOME/.local/share}/pash}
.
TODO
- Add support for not generating passwords.
- Add support for categories.
- Add an optional
tree
view. - Add support for both
gpg
andgpg2
. - Man page.
- Setup automatic linting.
- Documentation.
- Add support for using a public key.