# :key: lich
An extremely minimal command-line password manager.
- [Quick Start](#quick-start)
- [Usage](#usage)
- [Library Documentation](https://docs.rs/lich)
- [Is it secure?](#is-it-secure)
- [Building](#building)
Made with :tea: + :heart: by quadrupleslap. Any contributions welcome!
## Quick Start
This example uses [`fzf`](https://github.com/junegunn/fzf) for fuzzy-searching.
```bash
# Install it. Right now you'll have to build it yourself, but maybe one day this'll work!
brew install lich
# Choose a file location. This one's the default.
export LICH=$HOME/.lich
# Initialize.
lich init
# Set a password.
lich set github
# Fuzzy-select an entry and copy it to the clipboard.
lich get github
# Perhaps, in a fit of sheer madness, you switch to BitBucket.
lich delete github
```
## Usage
```
USAGE:
lich <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
delete Remove a password
get Get a password
help Prints this message or the help of the given subcommand(s)
init Initialises the password store
list List places
rekey Change the master password
set Change a password
```
## Is it secure?
Probably! It uses `AES-256-GCM` to store the passwords, encrypted with a randomly generated encryption key, which is in turn encrypted with the user's selected password. Any help verifying the code would be highly appreciated, though! :wink:
## Building
```bash
git clone https://github.com/quadrupleslap/lich
cd lich
cargo build --release --bin cli --all-features
```