Skip to content

A TOTP code generator for the CLI that securely stores secrets in the keychain

License

Notifications You must be signed in to change notification settings

jakeswenson/otpcli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTP Cli

Crates.io Build Status

A one time password library and CLI tool for generating time-based one time passwords. Also supports RSA Secure tokens (using the rust stoken library)

Installing

You can install with cargo

cargo install otpcli

Features

  • [DEFAULT] copy: build with copy to clipboard support. Adds a --copy cli option.
  • [DEFAULT] keychain: build with secure secret storage support using keyring.
  • rsa_stoken: add in stoken support using the stoken crate.

The copy feature uses clipboard and that requires a X11 on linux to access the clipboard

CLI

A simple one-time-password CLI, with support for TOTP and STOKEN.

USAGE:
    otpcli [FLAGS] [name] [SUBCOMMAND]

FLAGS:
        --copy       Copies the generated token to the clipboard
    -n, --newline    Adds a newline printed at the end out output
    -h, --help       Prints help information
    -V, --version    Prints version information
    -v, --verbose

ARGS:
    <name>    The name of the totp token to generate

SUBCOMMANDS:
    add                    Add/Update a new TOTP secret
    delete                 Add/Update a new TOTP secret
    generate               Generate a token
    help                   Prints this message or the help of the given subcommand(s)
    import                 Import an RSAToken into otpcli (if built with the stoken flag)
    list                   Add/Update a new TOTP secret
    migrate-to-keychain    Migrate secrets stored in the config to be stored in the keychain

Release process

Releases of otpcli are fully automated using GitHub Actions and initiated from cargo-release. To trigger a new release, run cargo release <version_change> where <version_change> is one of the support cargo release options:

  • alpha
  • beta
  • rc
  • patch
  • minor
  • major