This is a CLI tool for generating OTP codes from a backup vault from the Android app Aegis Authenticator.
- Decryption of the 256 bit AES-GCM encrypted vault ๐
- Fuzzy selection ๐
- TOTP generation ๐
- Time left indication โณ
- Clipboard support ๐
- JSON output to stdout ๐
The easiest way to install Aegis-rs is by downloading a pre-compiled binary from the latest release.
You can also download and compile yourself by using cargo-install:
$ cargo install --git https://github.com/Granddave/aegis-rs --tag latest
To start Aegis-rs, simply pass the path to your backup file as an argument and enter password. For example:
$ aegis-rs ~/Documents/aegis-backup-20230512-193110.json
? Insert Aegis Password โบ ********
Aegis-rs supports fuzzy finding for quickly locating entries. Type a part of the entry's name to filter the list. For instance:
โบ tw
โฏ Twitter (@johndoe)
Twitch (johndoe)
TeamViewer ([email protected])
Bitwarden ([email protected])
Aegis-rs allows you to read the OTP directly in the terminal or paste it using the integrated clipboard support. OTPs are regenerated automatically upon expiration. Here the OTP is displayed, including its remaining validity:
ยท Twitter (@johndoe)
121921 (28s left)
To unlock the Aegis vault Aegis-rs supports the following methods:
- Password: The password can be passed as an argument or set as an environment variable.
- Environment variable:
AEGIS_PASSWORD
- Argument:
--password <PASSWORD>
- Example:
aegis-rs --password hunter2 vault.json
- Environment variable:
- Password file: A file containing the password to unlock the vault.
- Environment variable:
AEGIS_PASSWORD_FILE
- Argument:
--password-file <PASSWORD_FILE>
- Example:
aegis-rs --password-file /path/to/password-file vault.json
- Environment variable:
- Password prompt: If no password is provided, Aegis-rs will prompt you to enter the password.
--issuer <ISSUER>
: Filter entries by entry issuer.--name <NAME>
: Filter entries by entry name.--json
: Output the calculated OTPs as JSON.
- Add password file feature
- Add countdown timer and refresh TOTP code after timeout
- Display digits in groups
- Add TOTP to clipboard
- Add CI
This project has been divided into a binary (this repo) and a vault utility crate so that other projects can utilize the parsing and OTP generation functionalities as well.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.