Minimal web app to generate 6‑digit TOTP (2FA) codes from a Base32 secret. Type or paste your secret to see the current code and the remaining time, and copy it in one click.
Русская версия: README_RU.md
- TOTP generation: compute a 6‑digit code from a Base32 secret
- Timer: display seconds left until the code refreshes (updates every second)
- Copy to clipboard: one‑click copy via “Copy Code”
- Secret validation: show an error if the secret is invalid
- URL routing: the secret is reflected in
/{SECRET}so you can bookmark or share - Input UX: auto uppercase and removal of non‑alphanumeric characters
- Vue 3 + Vite
- TypeScript
- Tailwind CSS v4
- lucide-vue-next (icons)
- native-browser-otp (
totp,timeLeft) for code generation and countdown - vue-router
bun install
bun devbun run buildbun preview- Paste your Base32 secret into the input (e.g., from a service’s 2FA settings).
- If valid, the 6‑digit code and countdown timer will appear.
- Click “Copy Code” to copy the current code to your clipboard.
- The URL updates to
/{SECRET}— bookmark or share for quick access. - If the secret is invalid, an “Invalid secret” message appears.
https://2fa.fb.expert/H5PJ4INB7VOINDJRL7WPWMZJHO74O3XG
- Input is converted to uppercase and stripped of non‑alphanumeric characters.
- On errors, the timer stops and the code resets to a safe state.
- Clipboard uses
navigator.clipboardand may require HTTPS or permissions.
Created by @doroved