From 65b907ca7137beeea664d9de2892e21201d1ebbb Mon Sep 17 00:00:00 2001 From: Awiteb Date: Fri, 17 May 2024 00:53:11 +0300 Subject: [PATCH] chore(docs): Update README.md --- README.md | 123 ++++++++++++++++++++++++++---------------------------- 1 file changed, 59 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index b3c331f..b167742 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,89 @@ + +
+ # Lprs +A local vault manager designed to securely store and manage your vaults. -Lprs is a local vault manager designed to securely store and manage your vaults. +[![Docs](https://img.shields.io/badge/docs-lprs.4rs.nl-purple)](https://lprs.4rs.nl) +[![Crates.io](https://img.shields.io/crates/v/lprs?color=orange)](https://crates.io/crates/lprs) +[![Forgejo CI Status](https://git.4rs.nl/awiteb/lprs/badges/workflows/ci.yml/badge.svg)](https://git.4rs.nl/awiteb/lprs) +[![Forgejo CD Status](https://git.4rs.nl/awiteb/lprs/badges/workflows/cd.yml/badge.svg)](https://git.4rs.nl/awiteb/lprs) -### MSRV -The Minimum Supported Rust Version (MSRV) is `1.70.0`. +
+ +## Features +- Auto checks for updates (Can be disabled). +- Passing the master password as an argument and via stdin. +- Changing the master password. +- Generating a passwords. +- Store username, password, service name and notes in a vault. +- Custom fields, you can store any key-value pair in a vault. +- TOTP (Time-based One-Time Password) generation. Which can be used to generate + 2FA codes. +- Searching for vaults. And list all vaults in json format. +- Importing and exporting encrypted vaults (in json format). +- Importing and exporting from/to Bitwarden json format. (Unencrypted) +- Editing vaults. (The secrets can be passed as arguments or via stdin) +- Deleting vaults. +- Getting single field from a vault. (Useful for scripts) +- Ability to edit, get and remove a vault using its index or name. +- Auto completion for bash, elvish, fish, powershell and zsh +- Ability to import and export vaults with different master passwords. (Useful + for sharing vaults with others) ## Installation -To install Lprs, you will need to have the Cargo package manager installed. If you do not have Cargo installed, you can install it by following the instructions [here](https://doc.rust-lang.org/cargo/getting-started/installation.html). - - -1. Install using [cargo-install](https://doc.rust-lang.org/cargo/commands/cargo-install.html): +### Build from source (MSRV: ) ```bash -cargo install lprs --locked -``` -This will enable the update notifications for Lprs. If you don't want to enable update notifications, you can install Lprs using: -```bash -cargo install lprs --locked --no-default-features +# From crates.io +cargo install lprs +# From source (after cloning the repository) +# The binary will be in target/release/lprs +cargo build --release ``` -2. Run Lprs: -```bash -lprs --help -``` +This will build Lprs with update checking enabled. If you want to disable update checking, you can build Lprs without the default features by passing the `--no-default-features` flag. -## Uninstallation -```bash -cargo uninstall lprs -``` +### Pre-built binaries +Pre-built binaries are available for Linux only, you can download them from the [releases page](https://git.4rs.nl/awiteb/lprs/releases/latest). ## Usage Lprs provides a command-line interface for managing your vaults. The following commands are available: ``` -A local CLI password manager +A local CLI vaults manager. For human and machine use Usage: lprs [OPTIONS] Commands: - add Add new vault - remove Remove vault - list List your vaults and search - clean Clean the vaults file - edit Edit the vault content - gen Generate a password - export Export the vaults - import Import vaults - help Print this message or the help of the given subcommand(s) + add Add new vault + remove Remove vault [alias `rm`] + list List your vaults and search [alias `ls`] + clean Clean the vaults file + edit Edit the vault content + gen Generate a password + get Get a entire vault or single field from it + export Export the vaults + import Import vaults + change-master-password Change the master password + completion Generate shell completion + help Print this message or the help of the given subcommand(s) Options: - -v, --vaults-file The vaults json file - -h, --help Print help - -V, --version Print version + -f, --vaults-file The vaults json file + -v, --verbose Show the logs in the stdout + -m, --master-password The master password, or you will prompt it + -h, --help Print help + -V, --version Print version ``` -### Example -```bash -lprs add -n "Gmail" -u "some@gmail.com" -p $(lprs gen 19 -u -l -s) -s "https://mail.google.com" -``` - -#### Result -This is the result when search for it -``` -$ lprs list -e "mail" -p -s -Master Password: *************** -+-------+-------+----------------+---------------------+-------------------------+ -| Index | Name | Username | Password | Service | -+================================================================================+ -| 31 | Gmail | some@gmail.com | >NC`q$%+Nno