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 <[email protected]> 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 recovery_codes View recovery codes for an account 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 recovery_codes <account>
This will open a file, using your preferred editor, to either save new recovery codes or view existing recovery codes.
cloak stores your accounts and recovery codes inside a
.cloak/ 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 point
cloak to the directory to use for storing your accounts and recovery codes:
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 local machine:
$ git clone https://github.com/evansmurithi/cloak.git
cloak/ and run:
$ cargo build
To run tests:
$ cargo test