Authy/Google Authenticator like TOTP CLI tool written in Go.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
command lower-case github handler May 10, 2018
info bump version May 10, 2018
security lower-case github handler May 10, 2018
storage lower-case github handler May 10, 2018
util Lint errors Oct 10, 2016
.gitignore Initial commit Sep 13, 2016
.travis.yml Add Travis Oct 5, 2016 Initial commit Sep 13, 2016 lower-case github handler May 10, 2018 add May 10, 2018
main.go lower-case github handler May 10, 2018
main_test.go lower-case github handler May 10, 2018

Go Report Card Build Status

This is a simple TOTP (Time-based One-time Password) CLI tool. TOTP is the most common mechanism for 2FA (Two-Factor-Authentication). You can manage and organize your accounts with namespaces and protect your data with a password.


Download the latest version of the application from the releases page.


$ totp-cli update

Help output

$ totp-cli help

add-token [namespace] [account]   Add new token
list [namespace]                  List all available namespaces or accounts under a namespace
delete <namespace>[.account]      Delete an account or a whole namespace
change-password                   Change password
update                            Check and update totp-cli itself
version                           Print current version of this application
generate <namespace>.<account>    Generate a specific OTP


When you run the application for the first time, it will ask for your password. DO NOT FORGET IT! There is no way to recover your password if you forget it.

Your first command (after help) would be add-token. You get get your token read a TOTP QR Code.

$ totp-cli add-token
Namespace: personal
Account: digitalocean
Password: ***

You can specify the namespace and the account name as a parameter:

$ totp-cli add-token personal randomaccount
Password: ***

If you want to delete randomaccount (because it was a test for example), you can use delete:

$ totp-cli delete personal.randomaccount
Password: ***
You want to delete 'personal.randomaccount' account.
Are you sure? yes

After few accounts, it's a bit hard to remember what did you added, so you can list namespaces:

$ totp-cli list
Password: ***
company1 (Number of accounts: 3)
company2 (Number of accounts: 5)
personal (Number of accounts: 8)

or you can list your accounts under a specific namespace:

$ totp-cli list personal
Password: ***

If you want to change your password, you can do it with the change-password command.