Keyboard Heatmap Visualizer
Paste any text: see which keys and fingers do the work on QWERTY, Dvorak, Colemak & co.
Try an example: English pangrams on QWERTY vs the rest · German text on QWERTZ
How it works
Paste text and see a key-frequency heatmap on a QWERTY, QWERTZ, AZERTY, Dvorak or Colemak keyboard, plus finger and hand load, row usage, same-finger bigrams and hand alternation — and a table comparing how the same text would feel on each layout.
- Every character is looked up on the layout (unshifted, Shift or AltGr level). Characters not on the layout are decomposed when possible (é → e) and counted as approximated; the rest (e.g. emoji) are counted as unmapped and skipped. Line breaks and tabs are skipped.
- Fingers follow standard touch typing on a row-staggered keyboard: left pinky for 1/Q/A/Z (and the ISO key left of Z), ring for 2/W/S/X, middle for 3/E/D/C, index for 4–5/R–T/F–G/V–B; mirrored on the right, with the right pinky also covering the keys beyond P/;//. The space bar counts for the thumbs.
- Same-finger bigram = two consecutive characters typed with the same finger on different keys (a key repeated, like “ll”, is not counted). Hand alternation = share of consecutive characters typed by different hands. Both exclude spaces, and a space resets the sequence.
- Home-row share is calculated without spaces. Shift and AltGr presses are counted as extra key presses but not attributed to a finger.
- The heatmap colour uses the square root of the count so that rarer keys stay visible.
A simplified model of typing effort: real comfort also depends on rolls, lateral stretches, keyboard geometry and habits.
For scripts and AI agents
- JSON API:
POST https://keyboardheatmapvisualizer.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://keyboardheatmapvisualizer.usefulweb.site/mcp· tool namekeyboard_heatmap_visualizer
Example request
curl -s -X POST https://keyboardheatmapvisualizer.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"text":"The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs! How vexingly quick daft zebras jump; sphinx of black quartz, judge my vow.","layout":"qwerty","compare":["qwerty","dvorak","colemak"]}'