Keyboard Key Counter
Counts the key presses your browser delivers to this page — total, unique keys, presses per minute and a per-key breakdown — while this page is open and focused.
Live key counter
What is being counted Every key event this browser tab receives while it has keyboard focus, including the keys you press on the controls of this page. Counting stops the moment you click into another window. Nothing is uploaded, and this page cannot see any other application.
Counting started automatically. Press any key.
Press any key anywhere on this page to count it. Click or tab into this panel first if you want Space, the arrow keys and Page Up/Down to be counted without scrolling the page.
Key events that were not counted
No key events have been left out.
| Reason | Events | Counted? | What it means |
|---|---|---|---|
| Nothing to report yet. | |||
Key frequency
| No keys counted yet. Press a key to start the table. | ||||
The bar chart of the most-used keys appears here once keys have been counted. The same numbers are in the table above.
Keyboard heat map
Each key shows how many times it was counted. Darker keys and a longer bar along the bottom edge mean more presses, and the number inside the key is the count itself, so the map never relies on colour alone.
The keyboard map loads with JavaScript enabled.
Number in the key = presses counted Bar length and shade = share of the busiest key Plain key = not pressed yet
Measurement environment
Timer resolution: — High-resolution timing: — Browser: — Platform: —
Counting a key press does not need a fine-grained clock, so these conditions barely affect the totals. They do affect the counting time and therefore the presses-per-minute figure, and they are the same conditions that matter on every timing test here. How we measure.
What this counter cannot tell you
This is a page in a web browser, not a system-wide counter. It cannot see keys you press in other tabs, other browser windows, games, or any other application, and it stops counting the moment this page loses keyboard focus. It also cannot see keys your operating system or keyboard firmware consumes before the browser gets them — the Fn layer, most media keys, and shortcuts the OS intercepts such as Alt+Tab or Cmd+Tab.
A count is a count, not a measurement of your hardware. Nothing on this page tells you how fast a switch actuates, how a keyboard performs, or how long your keyboard takes to deliver a press. For browser-side timing, use the keyboard latency test.
What this key counter can and cannot see
People searching for a key counter usually want one of two very different things. One is a background utility that counts every key you press all day, across every application. The other is a quick, private way to see what a burst of typing looks like. This page is firmly the second one, and saying so plainly saves you time.
A web page only receives keyboard events that the browser routes to it. That means this tool sees your presses while this tab is focused and visible, and sees nothing at all when you switch to another window. There is no extension, no background process and no network request involved: the counting happens in JavaScript on your own machine, and the numbers disappear when you close the tab unless you explicitly ask to keep them.
How a key press is counted
Each counted press is one trusted keydown event that arrived while this page
had focus. Key releases are used only to clear the highlight on the map; they are not added to
the total, so a press and its release count once, not twice.
Rows in the frequency table are grouped by KeyboardEvent.code, the identifier
for the physical key position. It does not change when you hold Shift and it does not change
with your keyboard layout, which is why a and A land in the same row
and why an AZERTY user pressing the key printed A still sees KeyQ. Modifiers are
counted as ordinary keys: pressing Shift and then a letter is two presses, because it is two
key events, and that is what you actually did with your fingers.
A handful of events are deliberately left out — events a script generated rather than a real press, and events that arrived while the tab was in the background. Every one of them is listed by reason in the disclosure inside the tool, with a note about whether it was counted. Nothing is dropped without being shown.
Why auto-repeat is switched off by default
Hold any key down and your operating system starts firing the same key event again and
again, after an initial delay and then at a steady rate. The browser marks those events with a
repeat flag, so they can be told apart from real presses.
If they counted, a single key held for five seconds could add several hundred to the total and put an otherwise unremarkable key at the top of the table. That is why the default counts one press per physical push. Turn the option on when you want the raw event stream instead — for example when you are curious how many events a held key actually generates. If you want to measure the timing of those repeats rather than count them, the keyboard repeat rate test is the tool for it.
Reading the frequency table and the heat map
Share is each key's count as a percentage of every counted press, so it tells you how lopsided your typing is. In ordinary English prose the space bar usually leads by a wide margin, followed by E, T and A, with Backspace far higher than most people expect. In a game, a few movement keys will dominate instead. Sort by any column heading to reorder the table; the sort direction is announced to screen readers through the heading itself.
The least-used callout means the least-used key among keys you actually pressed. It is not a list of keys that failed to register — if a key produces nothing at all, it never appears in this table. To check whether every key on your keyboard registers, use the keyboard tester, which is built for coverage rather than counts.
The heat map prints the count inside each key, so the intensity is readable without relying on the shade. If you press a key that the selected form factor does not have — a numpad key while a TKL layout is shown, for instance — it is listed under the map and you can switch form factor to bring it in.
Saving counts across reloads, and deleting them
By default this page keeps nothing. Switch on "keep counting across page reloads" and the totals, per-key counts and counting time are written to your browser's local storage under a single key, on this device only. It is the same mechanism a site uses to remember a dark-mode preference: it never leaves the browser and no server is involved.
The delete button removes that record immediately and switches the option back off. Your browser's own "clear site data" control removes it too. If you want the background on what a browser can and cannot observe about your keyboard, the guide on browser keyboard event timing explains where the event stream begins and where it stops.
Related keyboard tests
Frequently asked questions
Does this count key presses in other apps or games?
No. This counter only sees keyboard events that your browser delivers to this page while the page has keyboard focus. It cannot see typing in other tabs, other browser windows, games, or any other application, so it is not a system-wide key counter and not a keylogger. If you switch to another window, counting stops until you come back.
Are my key presses sent anywhere?
No. Every count is calculated in your browser and nothing is uploaded. The only storage is optional: if you switch on "keep counting across page reloads", the counts are written to local storage in this browser on this device, and the delete button removes that record immediately.
Why does holding a key down not increase the count?
Holding a key makes your operating system fire the keydown event over and over, and the browser flags those events with repeat set to true. By default they are recorded separately instead of being added to the total, because one held key can otherwise produce hundreds of events and swamp the frequency table. Switch on the auto-repeat option if you want them included.
Why do lowercase and uppercase letters count as the same key?
Rows are grouped by KeyboardEvent.code, which identifies the physical key position and does not change with Shift or with your keyboard layout. Pressing a and A both report KeyA, so they are one physical key in the table, and the Shift press is counted separately as its own key.
Can I keep my count after closing the tab?
Yes, if you switch on "keep counting across page reloads". Total presses, per-key counts and counting time are saved to local storage in this browser and restored when you come back. The option is off by default, and the delete button removes the stored record straight away.
Why is my presses per minute lower than my typing speed in words per minute?
They measure different things. Presses per minute counts every key event, including modifiers, Backspace and navigation keys, and averages it over the whole time the counter has been running, including the seconds when you were not typing at all. Words per minute is measured over a continuous typing sample and divides characters typed by five.