Human typing lab
Why can a website tell a person's typing from a script's?
Type one sentence and see what a page can observe about your typing, side by side with a simple script typing it: where the keys came from, their timing and modifiers, explained in plain English. Nothing is stored or sent.

What it measures
Where keys came from
Whether each key event came from the operating system or was made by page script, a mark the browser sets and page script cannot change.
Timing
How long each key stays down and how much the time between keys varies.
Keys and modifiers
Whether keys say which physical key was pressed, and whether capital letters came with Shift or Caps Lock.
Pasting
Text that arrives in the box without any key presses.
How to use it
- Open the lab and type the sentence shown, at your normal speed.
- Press Compare with a script. A simple script types the sentence into its own box.
- Read the two columns side by side, and the bars showing how long each key was held.
- Read what a page can observe, and why sites look.
Good to know
- It compares you with one simple script. Real sites combine many more signals; the bot-check lab shows more of them.
- On-screen keyboards, other layouts, Caps Lock, dictation and accessibility tools all look different, and all are fine. The lab says when it cannot measure something.
- It explains what pages can observe. It is not a guide to getting past a site's checks, and our agent skill says not to try.
Give your agent this skill
Try the lab, then let your AI agent keep what it teaches. Read the skill first; install it only if you want to.
What we found
We fed the lab typing from two kinds of automation and its own built-in script. Each was either detected or left nothing to measure. Key events sent through Chrome's DevTools protocol are marked as coming from the operating system, so that mark alone did not reveal them.
How-to
Sites that fight spam and fraud look at how text arrives, not just what it says. This lab shows what a page can observe while you type, next to what a simple script produces, so you can see why sites notice automation.
Try it
- Open the human typing lab and type the sentence at your normal speed.
- Press Compare with a script and read the two columns side by side.
- Look at the bars: each is one key, and its height is how long the key was held.
What the lab measures
- Where each key event came from. The browser marks events from the operating system differently from events made by page script.
- Timing. How long each key stays down, and how much the gaps between keys vary.
- Keys and modifiers. Whether keys say which physical key was pressed, and whether capital letters came with Shift or Caps Lock.
- Pasting. Text that arrives without key presses.
No single signal proves anything. On-screen keyboards (especially on Android), other layouts, Caps Lock, dictation and accessibility tools all look different, and all are fine. The lab says when it cannot measure something rather than guessing.
If you build or use an AI agent
Do not try to make an agent look human or get around a site's checks. Let it go at a person's pace, and hand any check it meets, such as a CAPTCHA, back to its person. The Considerate browser agent skill teaches that, and the bot-check lab shows the other signals sites see.
Check that it's private
This lab runs entirely in your browser and sends nothing anywhere. You don't have to take our word for it:
- The browser enforces it. This site's security policy only lets pages talk to lab.hopperlabs.ai. This command shows
connect-src 'self':curl -sI https://lab.hopperlabs.ai/labs/human-typing/run | grep -i content-security-policy - Every file is listed with its fingerprint and source commit in privacy.json, so you or your agent can compare them and read the code.
- Once the lab has loaded, turn off Wi-Fi: it keeps working, because it needs nothing from the network.
More labs

Accessibility check
Can everyone use this page, including people using a screen reader or a keyboard?
Open lab
Make your repo agent-ready
Can an AI coding agent find its instructions, build, test and keep secrets out of your repository?
Open lab
Bot-check lab
What can a website tell about the browser that opened it?
Open lab