A Rust client for LessPass server API, library and CLI.
If you are looking for a minimal implementation to only get the values from the server see rlpcli.
Simply download latest release from releases page.
lesspass-client build has been tested with current Rust stable release
version. You can install Rust from your distribution package or use
rustup
.
rustup default stable
If you prefer, you can use the stable version only for install
lesspass-client.
rustup override set stable
To build lesspass-client simply execute the following commands.
sh
git clone https://github.com/ogarcia/lesspass-client.git
cd lesspass-client
cargo build --release
Main command help. ``` LessPass server API client library and CLI written in Rust
Usage: lesspass-client [OPTIONS]
Commands: user User related commands password Password related commands help Print this message or the help of the given subcommand(s)
Options:
-s, --server
EXAMPLES: Get the password list specifying the server and without token cached: lesspass-client -s http://localhost:8000 -u user@sample.com -p passwd password list
Show a password: lesspass-client password show sample.site.com
Add a new password: lesspass-client password add sample.site.com user@site.com
Update a existing password (you need the ID from password show command): lesspass-client password update eed5950b-97f2-4ba9-bf09-7784b6c7e5a2 new.url.com new@email.com ```
In first time use you need to pass username and password to perform login.
After first run, lesspass-client stores the login token in your
XDG_CACHE_HOME
directory and you can run commands without the need to pass
username and password again.
To pass configuration values you can use the CLI options or following environment variables.
| Variable | Used for | | --- | --- | | LESSPASSHOST | URL of API server (deafult https://api.lesspass.com) | | LESSPASSUSER | Username (ex. user@example.com) | | LESSPASSPASS | Password | | LESSPASSMASTERPASS | Master password (only needed to print site passwords) |
Every command an subcommand has its own help, simply pass -h
or --help
to see it.
By default the API password is not in plain text but it is encrypted with LessPass itself as another access password. This prevents the password from being sent unencrypted.
The following parameters are used to calculate the password to be sent.
- Site: lesspass.com
- Login: The email address you use to authenticate.
- Master password: The password you use to authenticate.
- Options: Default. This means all options checked, size 16 and counter 1.
For example, if to authenticate against the API server we use as user
test@example.com
and as password 123456
, this would generate a password
Kd*k5i63iN$^z)?V
that is the one we must use as LESSPASS_PASS
.