Professional Chrome extension for offline TOTP (Time-based One-Time Password) management with intelligent auto-injection capabilities.
- Auto-extract labels - Parses
otpauth://URIs and extracts account labels automatically. - Base32 secret validation - Validates secrets before saving to prevent runtime errors.
- Smart profile management - Automatically adds new profiles to the popup for quick access.
- Import validation - Detailed error messages for invalid entries; skips bad secrets.
- Export with timestamp - Securely back up your vault to timestamped JSON files.
- Duplicate detection - Warns when imports would overwrite existing profiles.
- Visual feedback - Clear edit mode indicators and specific error messages.
- Issuer support - Extracts and utilizes issuer parameters from URIs.
- Live countdown timers - Shows real-time seconds remaining for the current TOTP period.
- Auto-clipboard copy - Copies codes to clipboard instantly upon click.
- Visual status feedback - Success and error messages displayed within the popup.
- Auto-submit indicator - Shows a 🔄 badge for profiles with auto-submit enabled.
- Smart field detection - Evaluates common MFA input selectors automatically.
- Retry logic - Defeats field resets with automatic re-injection.
- Auto-submit - Configurable per-profile auto-submit after injection.
- Custom selectors - Support for per-profile CSS selectors for site-specific targeting.
Autom8ed-Vault/
├── manifest.json # Extension manifest
├── background.js # Background service worker
├── popup.html # Popup interface
├── popup.js # TOTP generation & injection logic
├── manager.html # Full vault management UI
├── manager.js # Enhanced vault manager
├── injector.js # Content script for auto-injection
├── crypto-helper.js # Cryptographic operations
├── styles.css # Shared stylesheets
├── README.md # Documentation
├── PRIVACY_POLICY.md # Privacy policy
├── QUICKSTART.md # Quick start guide
├── VERSION_NOTES.md # Release notes
├── Install-Icons.ps1 # Icon installation helper script
├── icon16.png # 16x16 Extension icon
├── icon32.png # 32x32 Extension icon
├── icon48.png # 48x48 Extension icon
├── icon64.png # 64x64 Extension icon
└── icon128.png # 128x128 Extension icon
Chrome will not 1-click-install a .crx downloaded from GitHub (it only allows
that from the Chrome Web Store). The GitHub path is a setup zip: extract and
double-click Install.cmd. Pick Chrome / Edge / Brave. The installer does
not kill a running browser — if one is open, close it yourself and start it
again so the vault appears.
- Open the latest release: https://github.com/usrname1git/Chrome-MFA-extension/releases/latest
- Download
autom8ed-vault-*-setup.zip - Extract it and double-click Install.cmd
- Choose browsers, or run:
.\Install-Autom8edVault.ps1 -Browser Chrome,Edge
- From a machine with no zip yet:
That script downloads the latest setup zip when it has no local
irm https://raw.githubusercontent.com/usrname1git/Chrome-MFA-extension/main/Install-Autom8edVault.ps1 | iex
manifest.json.
- Run
.\Pack-Autom8edVault.ps1(or use the*-chrome-web-store.zipon the GitHub release) - Developer Dashboard → Upload new item → that zip
- Privacy policy URL: this repo's
PRIVACY_POLICY.mdon GitHub - Do not upload the setup zip or
.crxto the Store — only*-chrome-web-store.zip
- Open
chrome://extensions/ - Enable Developer mode
- Load unpacked → this folder
- Click extension icon → "⚙️ Manage Profiles"
- Paste your secret (supports 3 formats):
- Base32 secret:
ABCDEFGHJKLMNOPQRSTUVWZ - otpauth:// URI:
otpauth://totp/Twitter:@user?secret=ABCDEF... - Google Auth migration:
otpauth-migration://offline?data=...
- Base32 secret:
- Label auto-fills from the URI (or enter it manually)
- Adjust settings (digits, period, algorithm) if needed
- (Optional) Add a custom CSS selector for auto-injection (e.g.,
#tokencode) - (Optional) Enable auto-submit to automatically log in after injection
- Click "💾 Save Profile"
- Navigate to your MFA login page
- Click the profile in the extension popup
- The code auto-fills and optionally submits
- Note: Works automatically if the selector matches.
- Click the extension icon in your toolbar
- Click the desired profile button
- The code is copied to your clipboard
- Paste it manually into the MFA field
- Import from Google Authenticator: Export via QR code, scan to get the
otpauth-migration://URI, and paste into the manager. All accounts will import automatically. - Import from JSON: Click "📥 Import Vault" in the manager and select your backup file.
- Export Vault: Click "📤 Export Vault" to download a secure JSON backup.
Chrome Local Storage:
{
"vault": {
"Twitter": {
"secret": "ABCDEFGHJKLMNOPQRSTUVWZ",
"digits": 6,
"period": 30,
"algo": "SHA1",
"label": "@user",
"selector": "#tokencode",
"autoSubmit": false
}
},
"profileMap": ["Twitter", "GitHub"]
}- Algorithms: SHA1 (default), SHA256, SHA512
- Formats: 6-digit (standard), 7-digit, 8-digit codes
- Periods: 15 to 60-second intervals (30s default)
- Cryptography: RFC 6238 compliant using the Web Crypto API (SubtleCrypto)
- Local storage only - Secrets never leave your browser
- No cloud sync - Manual export/import required for backups
- Content script isolation - Runs in a sandboxed context
- No network requests - 100% offline operation after installation
| Issue | Solution |
|---|---|
| "No MFA input field found" | Add a custom CSS selector in the manager. Right-click the input field → Inspect → Copy selector. |
| "Invalid Base32 secret" | Ensure the secret only contains characters A-Z and 2-7. |
| Auto-submit not working | Site may have anti-automation protections. Disable auto-submit and click manually. |
| Code not injecting | Click the popup button to copy the code, then paste it manually. Check DevTools (F12) console for errors. |
- ✨ Initial stable release.
- 🚀 Features full auto-injection, smart vault management, and an optimized user experience.
- (Note: All previous beta versions and iterations are now considered 0.X.X and have been consolidated into this stable 1.0 release.)
Created by: Autom8ed
Version: 1.0
Date: May 6, 2026
Personal use project. No license restrictions.