A Command Line OTP (One Time Password) Authenticator application written in Rust that generates time-based and counter-based OTP codes.
- Why you shouldn’t scan two-factor authentication QR codes!
- As a means of learning the Rust programming language.
- Easier to copy the OTP code from my terminal to the login form, rather than from my phone to my laptop.
cloak, you can do either of the following:
You can download the binaries here. Make sure to put the path to the binary into your
Alternatively, you can install
cloakvia the scoop package manager with the following command:
scoop install cloak
Once you've installed Rust, install
cloakby typing the following in the terminal:
cargo install cloak
This will download and compile
cloak. After this is finished, add the Cargo bin directory to your
The sub-commands included in
cloak are as follows:
$ cloak -h cloak 0.1.0 Evans Murithi <firstname.lastname@example.org> A Command Line OTP Authenticator application. USAGE: cloak [SUBCOMMAND] FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: add Add a new account delete Delete an account help Prints this message or the help of the given subcommand(s) list List OTP for all accounts view View the OTP for an account
To view the help of any of the subcommands below, add
cloak add -h.
cloak add <account> <key>
This will add a new account. You will need to provide the name of the account as well as valid base32 encoded key. Example:
$ cloak add github 4AZJFQFIGYM2KMTOO72I6FAOZ6ZFWJR6
cloak view <account>
This will print the TOTP/HOTP of the account you want to view. Example:
$ cloak view github 123456
This prints all the accounts with their respective TOTP/HOTP codes. Example:
$ cloak list Account: github TOTP: 607091 Account: gitlab TOTP: 325414
cloak delete <account>
This will delete an account. Once deleted, you cannot view the OTP codes for the account. Example:
$ cloak delete github Account successfully deleted $ cloak view github Account with the name 'github' does not exist. Consider adding it.
cloak stores your accounts and recovery codes inside a
directory found inside your
$HOME folder if you are on Linux or macOS, or
inside your user profile folder if you are on Windows.
To alter this, you can use the
CLOAK_ACCOUNTS_DIR environment variable to
cloak to the directory to use for storing your accounts and recovery
export CLOAK_ACCOUNTS_DIR='/save/accounts/here/' # absolute path
If you want to contribute to
cloak you will have to clone the repository on your
$ git clone https://github.com/evansmurithi/cloak.git
cloak/ and run:
$ cargo build
To run tests:
$ cargo test