Your verification code
Your Google verification code is 482 913. It expires in 5 minutes.
v0.2.0 · Field suggestions are here
Simple OTP's browser extension catches fresh Gmail codes and offers them beside any OTP field — with a live countdown, one-click fill, and nothing ever leaving your device.
On a Mac? Get the menu-bar app →
Your verification code
Your Google verification code is 482 913. It expires in 5 minutes.
accounts.example
Filled — code marked used
The extension reads the code on-device and offers it exactly where you type.
Features
One job, done end to end: detect the code, prove it's fresh, hand it over, clean up after.
“Expires in 5 minutes” in the email becomes a real ticking timer. No statement? A conservative 10-minute default takes over.
A suggestion appears beside any focused OTP field. You hit Fill — it never submits for you.
AutoFill, clipboard auto-catch and Paste & Parse keep just the code in memory for ≤ 5 minutes. Never logged, never synced.
Each Gmail keeps its own resumable cursor, so refreshes read only what changed. First account free.
Used and expired codes stay searchable for 1, 7 or 30 days — then they're gone. Filter fresh, used, expired.
simple-otp doctor · list · history · copy · use — script the whole lifecycle from your terminal.
$ simple-otp list
● Google······482 913··04:37
○ GitHub······394 102··03:12
Surfaces
Standalone Gmail client for Chrome and Firefox. With the Mac app installed, the extension reads its shared local snapshot — Gmail is fetched once, both products read the same result. Fill only ever happens on your explicit action.
Chrome · FirefoxUniversal binary for Apple silicon and Intel. The menu-bar icon fills when a fresh code lands; the popover offers copy, mark-used, restore, per-account pause, and instant refresh. Settings live one click away.
macOS 15+doctor diagnoses setup, list shows fresh codes, copy grabs the latest (and marks it used), use/unuse manage state — all against the same on-device store. Your AI agents can use it too: with your approval, an agent you're working with can pull a fresh code straight from the terminal instead of sending you to dig through Gmail.
How it works
Google's own browser flow, accounts you pick. Read-only by default; refresh tokens stay in your browser profile or Keychain.
Incremental sync decodes new messages in memory, extracts the code, discards the body.
Hit Fill beside the field, or copy from the popup. Used codes step aside automatically.
Security
No Simple OTP cloud. No inbox database. No analytics pipeline. A stateless broker only exchanges OAuth tokens; messages and codes never pass through it.
gmail.readonly unless you opt further.gmail.modify separately, per account.INBOX label — it stays in Gmail All Mail.Pricing
$0forever
One Gmail account, full code inbox, countdowns, fill.
Get the Mac app$30/ year
Multi-account sync on every browser profile you use.
Choose yearlyor go monthly ($3)$50once
Pay once. Multi-account sync forever, no renewals.
Choose lifetimeCheckout by Polar — key arrives with the receipt, activated in extension Settings → Pro license. Tokens, messages and codes never leave your device; verification sends only the key.
FAQ
Chrome and Firefox — the extension is a standalone Gmail client in both.
No. Bodies are decoded in memory and discarded; only code, sender and expiry persist locally.
Copying or filling does, automatically. Manual used / unused controls are always available.
Never. Every fill is your explicit action; submit stays yours.
Off by default. With separate per-account consent it removes only the INBOX label from the exact OTP message (kept in Gmail All Mail) and retries safely on failure.
No — the extension works standalone. With the app installed, both share one local snapshot instead of fetching twice.
Free. Set up in two minutes.
Open installed app ↗ Chrome + Firefox · No account required · Mac menu-bar app included