Typed counts every character you type by hand against everything pasted, dropped or written by software, then signs the score onto the email you send.
A score from 0% to ✅. #
The share of characters that came from your keyboard. Both counters only grow, so pasting a paragraph and deleting it still costs you. Only typing more raises the score.
✅ typed appears only when not a single character was inserted. The score rounds down, so 999 typed characters and one pasted one is “99% typed”.
What counts. #
Typed listens to the browser’s own input events, so it knows a keystroke from a paste from text that appeared by itself.
-
Typing on your keyboard
-
IME and composition input, emoji pickers
-
Backspace, undo, bold, lists, indent
-
Spell-check fixing one word
-
Pasting a URL, or a link with a short label like “here”
-
Quoted replies, your signature, templates
-
Pasting or dropping text, images or files
-
AI writers, Smart Compose, other extensions, dictation
-
Text replacements that expand into several words
-
Keystrokes that look machine-generated
Hover the chip while composing for the full breakdown: characters typed, characters inserted and why, and the last few input events. Never your text.
Signed, so nobody can fake your badge. #
Anyone can type “✅ typed” at the bottom of an email. Typed signs the badge with a key that lives only in your browser.
- Covers sender, score and text. Change any of them and the badge reads “bad signature”.
- Trust on first use , like SSH. A new key for a known sender shows a loud warning.
- Non-extractable key. ECDSA P-256, created on your device. Gmail can’t reach it.
Private by design. #
There is nothing to trust. Typed has no backend and no network code. Its only permission is storage, and it only runs on mail.google.com.
Counts, not keystrokes
Typed keeps two numbers per draft. It never logs which keys you press or what you write.
Drafts keep their score
Close and reopen a draft and the score comes back, from a tally and fingerprint in local storage that expires after 30 days.
About 500 lines
Plain JavaScript with no build step and no dependencies. Search it for fetch: there isn’t one.
Written by hand. Now it shows. #
Free for Chrome, Edge, Brave and Arc. Works in Gmail.