MCPcopy Index your code
hub / github.com/evansmurithi/cloak

github.com/evansmurithi/cloak @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
39 symbols 68 edges 11 files 12 documented · 31% updated 3y agov0.3.0 · 2022-01-30★ 30810 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

cloak

A Command Line OTP (One Time Password) Authenticator application written in Rust that generates time-based and counter-based OTP codes.

CI codecov License Crates.io version

Motivation

Example

<img src="https://cdn.rawgit.com/evansmurithi/cloak/6d113aa8376b04cce12b64261962750532997e64/assets/cloak_example.svg">

Installation

To install cloak, you can do either of the following:

  1. Binaries

    You can download the binaries here. Make sure to put the path to the binary into your PATH.

    Alternatively, you can install cloak via the scoop package manager with the following command:

    powershell scoop install cloak

  2. Crates.io

    Once you've installed Rust, install cloak by typing the following in the terminal:

    bash cargo install cloak

    This will download and compile cloak. After this is finished, add the Cargo bin directory to your PATH.

Usage

The sub-commands included in cloak are as follows:

$ cloak -h
cloak 0.1.0
Evans Murithi <murithievans80@gmail.com>
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 -h or --help, e.g. 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:

    bash $ cloak add github 4AZJFQFIGYM2KMTOO72I6FAOZ6ZFWJR6

  • cloak view <account>

    This will print the TOTP/HOTP of the account you want to view. Example:

    bash $ cloak view github 123456

  • cloak list

    This prints all the accounts with their respective TOTP/HOTP codes. Example:

    ```bash $ 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:

    bash $ cloak delete github Account successfully deleted $ cloak view github Account with the name 'github' does not exist. Consider adding it.

Customization

By default 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

Contributions

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

To build, cd into cloak/ and run:

$ cargo build

To run tests:

$ cargo test

Core symbols most depended-on inside this repo

subcommand
called by 4
src/cmd/add.rs
run
called by 4
src/cmd/add.rs
get
called by 3
src/account.rs
save
called by 2
src/account.rs
generate
called by 2
src/otp.rs
is_number
called by 2
src/cmd/view.rs
is_base32_key
called by 2
src/cmd/add.rs
list
called by 1
src/account.rs

Shape

Function 24
Method 10
Class 3
Enum 2

Languages

Rust100%

Modules by API surface

src/otp.rs8 symbols
src/account.rs8 symbols
tests/integration_tests.rs7 symbols
src/cmd/view.rs4 symbols
src/cmd/add.rs4 symbols
src/dirs.rs2 symbols
src/cmd/list.rs2 symbols
src/cmd/delete.rs2 symbols
src/main.rs1 symbols
src/errors.rs1 symbols

For agents

$ claude mcp add cloak \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page