Skip to content

Commit

Permalink
Improve README.md.
Browse files Browse the repository at this point in the history
  • Loading branch information
marcopaganini committed Feb 11, 2023
1 parent 34f1260 commit d914359
Showing 1 changed file with 45 additions and 37 deletions.
82 changes: 45 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,72 @@
**NAME**
# termotp - A terminal OTP codes generator.

termotp - A terminal OTP codes generator.
## Description

**SYNOPSYS**
**termotp** reads an encrypted vault export from your TOTP Android App (currently, only Aegis Authenticator is supported) and displays issuers, providers and a TOTP for each of them. The program uses no database and reads directly from the App export. Since backups are encrypted, your credentials never stay on the disk unencrypted. It's basically a pure terminal based way to generate TOTP tokens while keeping your credentials encrypted.

termotp --input=file_glob [options] [entry_regexp}
Future versions will read encrypted exports from other apps, such AndOTP and others.

**DESCRIPTION**
**termotp** can display a simple table with issuers, accounts, and otps, or engage in an interactive fuzzy finder with the user.

**termotp** reads an encrypted vault export from your TOTP Android App
(currently, only Aegis Authenticator is supported) and displays issuers,
providers and a TOTP for each of them. The program uses no database and reads
directly from the App export. Since backups are encrypted, your credentials
never stay on the disk unencrypted.
A regular expression allows the selection of a group of entries. If called without a regexp, **termotp** will show all entries.

Future versions will read encrypted exports from other apps, such AndOTP and others.
## Installation

There are a few ways to install **termotp**:

### Download from releases

To download and install the latest release, cut and paste the following shell command:

**termotp** can display a simple table with issuers, accounts, and otps, or
engage in an interactive fuzzy finder with the user.
```bash
wget -q -O/tmp/install \
'https://raw.githubusercontent.com/marcopaganini/termotp/master/install.sh' && \
sudo sh /tmp/install marcopaganini/termotp
```

A regular expression allows the selection of a group of entries. If called
without a regexp, **termotp** will show all entries.
If you have the Go compiler installed, just clone the repository and type `make`, followed by `make install`:

```bash
git clone https://github.com/marcopaganini/termotp
cd termotp
make
sudo make install
```

## Usage

The basic usage is:

```
termotp --input=file_glob [options] [entry_regexp}
```

**OPTIONS**
### Options ###

**--input=file_glob**

Specifies the file or a glob matching more than one file holding the encrypted
vault exports. If the glob expands to more than one file, **termotp** will pick
the newest one. This is useful if you sync your phone vault exports to a
directory on your computer (using syncthing, for example.). Aegis by default
uses a date on the filename, so in case of multiple files being present, the
latest one is what you usually want.
Specifies the file or a glob matching more than one file holding the encrypted vault exports. If the glob expands to more than one file, **termotp** will pick the newest one. This is useful if you sync your phone vault exports to a directory on your computer (using syncthing, for example.). Aegis by default uses a date on the filename, so in case of multiple files being present, the latest one is what you usually want.

E.g.: Specifying `--input="/backups/aegis/*.json"` (note the quotes) will cause
**termotop** to use the latest file named `*.json` in the `/backup/aegis`
directory.
E.g.: Specifying `--input="/backups/aegis/*.json"` (note the quotes) will cause **termotop** to use the latest file named `*.json` in the `/backup/aegis` directory.

**--fuzzy**

Without any special options, **termotp** shows a formatted table of your
TOTP providers and the calculated tokens. This option shows a simple TUI
with a fuzzy selector. Hitting enter on an entry will print the otp
to the standard output.
Without any special options, **termotp** shows a formatted table of your TOTP providers and the calculated tokens. This option shows a simple TUI with a fuzzy selector. Hitting enter on an entry will print the otp to the standard output.

**---version**

Just print the current program version (or git commit number) and exit.

**FUTURE PLANS**
## Future plans

Add support for other OTP programs, like AndOTP, 2FA, etc. I'll proceed to do
that once I have literature on the encrypted export formats for those programs.
For now, only Aegis Authenticator is supported.
Add support for other OTP programs, like AndOTP, 2FA, etc. I'll proceed to do that once I have literature on the encrypted export formats for those programs. For now, only Aegis Authenticator is supported.

**LINKS**
## Related and similar programs

* Aegis authenticator: http://getaegis.app
* Syncthing: http://syncthing.net
* Aegis authenticator for Android: http://getaegis.app
* Syncthing (available for multiple OSes): http://syncthing.net
* Similar program: [OTPCLient](https://github.com/paolostivanin/OTPClient) allows you to import different vault formats into its own encrypted vault. Has a graphical UI and a less capable CLI client.

**AUTHOR**
## Author

Marco Paganini <paganini AT paganini dot net>

0 comments on commit d914359

Please sign in to comment.