A modern TOTP authenticator desktop app built with Tauri v2, Svelte 5, and Rust. Designed with Material Design 3 Expressive guidelines.
name:password:secret to auto-fill all fields.txt file (one per line).txt file onto the app to import accounts| Layer | Technology |
|---|---|
| Backend | Rust + Tauri v2 |
| Frontend | Svelte 5 (runes) + SvelteKit |
| Styling | Tailwind CSS v4 + M3 design tokens |
| Fonts | Roboto Flex (variable) + Material Symbols Outlined |
| Icons | Simple Icons (simpleicons.org) |
| Linting | ESLint + Prettier |
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Or on Windows, double-click:
dev.bat
npm run tauri build
The installer will be in src-tauri/target/release/bundle/.
If you want the produced app to support in-app updates, build with:
export TAURI_UPDATER_PUBKEY="$(cat /path/to/generated/public-key-file)"
export TAURI_UPDATER_ENDPOINT="https://github.com/designer9999/authenticator/releases/latest/download/latest.json"
export TAURI_SIGNING_PRIVATE_KEY="$HOME/.tauri/authenticator.key"
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=""
npm run tauri build
This project now uses the Tauri updater plugin instead of only comparing the latest GitHub tag.
Required release setup:
npm run tauri signer generate -- -w ~/.tauri/authenticator.keyTAURI_SIGNING_PRIVATE_KEY and TAURI_SIGNING_PRIVATE_KEY_PASSWORD to GitHub Actions secretsTAURI_UPDATER_PUBKEY to GitHub Actions secrets or variables using the content of the generated public keylatest.jsonAfter that, installed builds can check, download, and install updates from:
https://github.com/designer9999/authenticator/releases/latest/download/latest.json
username:password:SECRETKEY
Alice:pass123:JBSWY3DPEHPK3PXP
Bob:pass456:KRMVATZTJFZUC4BY
Charlie:pass789:GEZDGNBVGY3TQOJQ
The password field is ignored — only the name and base32 secret are used.
Accounts are stored in a local JSON file:
%APPDATA%/com.mjau.authenticator/accounts.json~/Library/Application Support/com.mjau.authenticator/accounts.json~/.config/com.mjau.authenticator/accounts.jsonYou can change the storage location in Settings.
MIT