Monkeytype | A minimalistic, customizable typing test

12 min read Original article ↗

Created with love by Miodec.
Supported and expanded by many awesome people.
Launched on 15th of May, 2020.

distribution of time 60 leaderboard results (wpm)

about

Monkeytype is a minimalistic and customizable typing test. It features many test modes, an account system to save your typing speed history, and user-configurable features such as themes, sounds, a smooth caret, and more. Monkeytype attempts to emulate the experience of natural keyboard typing during a typing test, by unobtrusively presenting the text prompts and displaying typed characters in-place, providing straightforward, real-time feedback on typos, speed, and accuracy.

Test yourself in various modes, track your progress and improve your speed.

word set

By default, this website uses the most common 200 words in the English language to generate its tests. You can change to an expanded set (1000 most common words) in the options, or change the language entirely.

keybinds

You can usetabandenter(or justtabif you have quick tab mode enabled) to restart the typing test. Open the command line by pressingctrl/cmd+shift+poresc- there you can access all the functionality you need without touching your mouse.

stats

wpm - total number of characters in the correctly typed words (including spaces), divided by 5 and normalised to 60 seconds.

raw wpm - calculated just like wpm, but also includes incorrect words.

acc - percentage of correctly pressed keys.

char - correct characters / incorrect characters. Calculated after the test has ended.

consistency - based on the variance of your raw wpm. Closer to 100% is better. Calculated using the coefficient of variation of raw wpm and mapped onto a scale from 0 to 100.

results screen

After completing a test you will be able to see your wpm, raw wpm, accuracy, character stats, test length, leaderboards info and test info (you can hover over some values to get floating point numbers). You can also see a graph of your wpm and raw over the duration of the test. Remember that the wpm line is a global average, while the raw wpm line is a local, momentary value (meaning if you stop, the value is 0).

bug report or feature request

If you encounter a bug, or have a feature request - join the Discord server, send me an email, a direct message on Twitter or create an issue on GitHub.

support

Thanks to everyone who has supported this project. It would not be possible without you and your continued support.

contact

If you encounter a bug, have a feature request or just want to say hi - here are the different ways you can contact me directly.

credits

Montydrei  for the name suggestion

Everyone  who provided valuable feedback on the original reddit post for the prototype of this website

Supporters who helped financially by donating, enabling optional ads or buying merch

Contributors  on GitHub that have helped with implementing various features, adding themes and more

tip: You can also change all these settings quickly using the command line (

ctrl/cmd

+

shift

+

p

or

esc

)

Account settings have moved. You can now access them by hovering over the account button in the top right corner, then clicking "Account settings".

presets

Create settings presets that can be applied with one click. Remember to edit your preset if you make any changes - they don't save on their own.

test difficulty

Normal is the classic typing test experience. Expert fails the test if you submit (press space) an incorrect word. Master fails if you press a single incorrect key (meaning you have to achieve 100% accuracy).

quick restart

Press

tab

,

esc

or

enter

to quickly restart the test, or to quickly jump to the test page. These options disable tab navigation on most parts of the website. Using the "esc" option will move opening the commandline to the

tab

key.

repeat quotes

This setting changes the restarting behavior when typing in quote mode. Changing it to 'typing' will repeat the quote if you restart while typing.

blind mode

No errors or incorrect words are highlighted. Helps you to focus on raw speed. If enabled, quick end is recommended.

always show words history

This option will automatically show the words history at the end of the test. Can cause slight lag with a lot of words.

single list command line

When enabled, it will show the command line with all commands in a single list instead of submenu arrangements. Selecting 'manual' will expose all commands only after typing

>

.

min speed

Automatically fails a test if your speed falls below a threshold.

min accuracy

Automatically fails a test if your accuracy falls below a threshold.

min burst

Automatically fails a test if your raw for a single word falls below this threshold. Selecting 'flex' allows for this threshold to automatically decrease for longer words.

british english

When enabled, the website will use the British spelling instead of American. Note that this might not replace all words correctly. If you find any issues, please let us know.

language

Change in which language you want to type.

funbox

These are special modes that change the website in some special way (by altering the word generation, behavior of the website or the looks). Give each one of them a try!

custom layoutfluid

Select which layouts you want the layoutfluid funbox to cycle through.

polyglot languages

Select which languages you want the polyglot funbox to use.

freedom mode

Allows you to delete any word, even if it was typed correctly.

strict space

Pressing space at the beginning of a word will insert a space character when this mode is enabled.

opposite shift mode

This mode will force you to use opposite

shift

keys for shifting. Using an incorrect one will count as an error. This feature ignores keys in locations

B

,

Y

, and

^

because many people use the other hand for those keys. If you're using external software to emulate your layout (including QMK), you should use the "keymap" mode - the standard "on" will not work. This will enforce opposite shift based on the "keymap layout" setting.

stop on error

Letter mode will stop input when pressing any incorrect letters. Word mode will not allow you to continue to the next word until you correct all mistakes.

confidence mode

When enabled, you will not be able to go back to previous words to fix mistakes. When turned up to the max, you won't be able to backspace at all.

quick end

This only applies to the words mode - when enabled, the test will end as soon as the last word has been typed, even if it's incorrect. When disabled, you need to manually confirm the last incorrect entry with a space.

indicate typos

Shows typos that you've made. "Below" shows what you typed below the letters, "replace" will replace the letters with the ones you typed and "both" will do the same as replace and below, but it will show the correct letters below your mistakes.

hide extra letters

Hides extra letters. This will completely avoid words jumping lines (due to changing width), but might feel a bit confusing when you press a key and nothing happens.

composition display

Change how composition is displayed. "off" will just underline the letter if composition is active. "below" will show the composed character below the test. "replace" will replace the letter in the test with the composed character.

lazy mode

Replaces accents / diacritics / special characters with their normal letter equivalents.

layout emulator

With this setting you can emulate other layouts. This setting is best kept off, as it can break things like dead keys and alt layers.

code unindent on backspace

Automatically go back to the previous line when deleting line leading tab characters. Only works in code languages.

sound volume

Change the volume of the sound effects.

play sound on click

Plays a short sound when you press a key.

play sound on error

Plays a short sound if you press an incorrect key or press space too early.

play time warning

Play a short warning sound if you are close to the end of a timed test.

smooth caret

The caret will move smoothly between letters and words.

caret style

Change the style of the caret during the test.

pace caret

Displays a second caret that moves at constant speed. The 'average' option averages the speed of last 10 results. The 'tag pb' option takes the highest PB of any active tag. The 'daily' option takes the highest speed of the last 24 hours.

repeated pace

When repeating a test, a pace caret will automatically be enabled for one test with the speed of your previous test. It does not override the pace caret if it's already enabled.

pace caret style

Change the style of the pace caret during the test.

live progress style

Change the style of the timer/word count during a test. "Flash" styles will briefly show the timer in timed modes every 15 seconds.

live speed style

Change the style of the live speed displayed during the test.

live accuracy style

Change the style of the live accuracy displayed during the test.

live burst style

Change the style of the live burst speed displayed during the test.

live stats color

Change the color of the progress, live speed, accuracy and burst text.

live stats opacity

Change the opacity of the progress, live speed, burst and accuracy text.

highlight mode

Change what is highlighted during the test.

tape mode

Only shows one line which scrolls horizontally. Setting this to 'word' will make it scroll after every word and 'letter' will scroll after every keypress. Works best with smooth line scroll enabled and a monospace font.

tape margin

When in tape mode, set the carets position from the left edge of the typing test as a percentage (for example, 50% centers it).

smooth line scroll

When enabled, the line transition will be animated.

show all lines

When enabled, the website will show all lines for word, custom and quote mode tests - otherwise the lines will be limited to 3, and will automatically scroll. Using this could cause the timer text and live speed to not be visible.

00

always show decimal places

Always shows decimal places for values on the result page, without the need to hover over the stats.

typing speed unit

Display typing speed in the specified unit.

start graphs at zero

Force graph axis to always start at zero, no matter what the data is. Turning this off may exaggerate the value changes.

max line width

Change the maximum width of the typing test, measured in characters. Setting this to 0 will align the words to the edges of the content area.

font size

Change the font size of the test words.

font family

Change the font family used by the website. Using a local font will override your choice.
Note: Local fonts are not sent to the server and will not persist across devices.

keymap

Displays your current layout while taking a test. React shows what you pressed and Next shows what you need to press next.

keymap layout

Controls which layout is displayed on the keymap.

keymap size

Change the size of the keymap.

flip test colors

By default, typed text is brighter than the future text. When enabled, the colors will be flipped and the future text will be brighter than the already typed text.

colorful mode

When enabled, the test words will use the main color, instead of the text color, making the website more colorful.

custom background

Set an image url or local image to be a custom background image. Local image always take priority over the image url. Cover fits the image to cover the screen. Contain fits the image to be fully visible. Max fits the image corner to corner.

Note: The local image is stored in your browser's local storage and will not be uploaded to the server. This means that if you clear your browser's local storage or use a different browser, the local image will be lost.

custom background filter

Apply various effects to the custom background.

auto switch theme

Enabling this will automatically switch the theme between light and dark depending on the system theme.

randomize theme

After completing a test, the theme will be set to a random one. The random themes are not saved to your config. If set to 'favorite' only favorite themes will be randomized. If set to 'light' or 'dark', only presets with light or dark background colors will be randomized, respectively. If set to 'auto' dark or light themes are used, depending on your system theme. If set to 'custom', custom themes will be randomized.

key tips

Shows the keybind tips at the bottom of the page.

out of focus warning

Shows an out of focus reminder after 1 second of being 'out of focus' (not being able to type).

caps lock warning

Displays a warning when caps lock is on.

average

Displays your average speed and/or accuracy over the last 10 tests.

import/export settings

Import or export the settings as JSON.

ads

You can disable or enable ads at any time. "Result" will show one ad on the result page, "on" will add floating vertical banners, and "sellout" will add multiple ads on every page.

(changes will take effect after a refresh).

update cookie preferences

If you changed your mind about which cookies you consent to, you can change your preferences here.

animation fps limit

Limit the maximum fps for animations. Setting this to "native" will run the animations as fast as possible (at your monitor's refresh rate). Setting this above your monitor's refresh rate will have no effect.

reset settings

Resets settings to the default (but doesn't touch your tags and presets).
You can't undo this action!

Account settings have moved. You can now access them by hovering over the account button in the top right corner, then clicking "Account settings".

Login/Signup is disabled or the server is down/under maintenance.

All-Time English Leaderboards

No data found. Check your filters.

average wpm
(last 10 tests)

-

average raw wpm
(last 10 tests)

-

avg accuracy
(last 10 tests)

-

avg consistency
(last 10 tests)

-

wpmrawaccuracyconsistencycharsmodeinfotagsdate

load more

All-Time English Leaderboards

404

Ooops! Looks like this page or resource doesn't exist.

Go Home

Incoming Requests

userdate

You don't have any friends :(

namefriends forlevelteststime typingstreaktime 15 pbtime 60 pb
# namewpm

accuracy

raw

consistency

wpmaccuracyrawconsistencydate
# namexp gainedtime typedxp gained

time typed

last activity
1

Username

100.00100.00%100.00100.00%23 Aug 2024 12:10
2

Username

100.00100.00%100.00100.00%23 Aug 2024 12:10
2

Username

100.00100.00%100.00100.00%23 Aug 2024 12:10