Pull Luck rates a Monkeytype word pull before you type it. The badge compares the current test with 500 simulated pulls from the same language list, shows the keyboard patterns that affect difficulty, and learns a rough WPM projection from your finished tests.
The expanded badge shows the pull percentile, projected WPM, difficulty modifier, keyboard-pattern breakdown, and worst bigrams for a live 100-word English test.
- Download
pull-luck-v1.1.0.zipfrom the latest release and unzip it somewhere permanent. - Open your browser's extensions page, such as
chrome://extensionsoredge://extensions. - Turn on developer mode.
- Choose Load unpacked and select the folder containing
manifest.json. - Open or refresh Monkeytype.
- Open
about:debugging. - Choose This Firefox, then Load Temporary Add-on.
- Select
manifest.json.
Temporary Firefox add-ons unload when the browser restarts.
- Percentile and grade: how the pull compares with simulated pulls from the active language list. A score of 87 means the pull is easier than 87 percent of the sample.
- Pull modifier: the model's expected speed multiplier against an average pull.
- Projected WPM: an estimate based on the last 15 saved results for the current language and keyboard layout.
- SFB, rolls, alternation, and length: a quick view of the patterns behind the score.
- Worst bigrams: up to four same-finger, scissor, or stretch transitions with the largest penalties.
- Result summary: actual WPM, estimated pull luck, and calibrated base speed.
Choose QWERTY, Colemak, Colemak-DH, or Dvorak from the badge. The badge fades while you type and returns when the test ends, loses focus, or is canceled.
Each physical key position has a base effort. The model adjusts that effort for same-finger bigrams, row jumps, scissors, lateral stretches, rolls, hand alternation, redirects, capital letters, common bigrams, word position, and word frequency. It then compares the test with 500 random pulls from Monkeytype's active language list.
Tests longer than 100 words use an evenly spaced 100-word sample so the simulation does not stall the typing page. Time mode rates the words Monkeytype has rendered so far. When the test ends, the result estimate is recalculated from the words reached during the test.
Pull Luck stores the selected layout, collapsed state, and up to 40 calibration results
in the extension's local browser storage instead of Monkeytype's site storage. The badge
renders the selected layout and derived projections in the page DOM, but not the raw
history. Older versions stored pullluck_* values in Monkeytype's site storage; the
extension migrates those values once when possible. Results saved before layout-aware
calibration are assigned to the layout selected during that migration.
The content script reads Monkeytype's local config value to identify the active mode,
language, punctuation setting, number setting, and speed unit. It fetches only the
active word list from monkeytype.com. There are no analytics, accounts, remote code,
or third-party requests.
Removing the extension also removes its stored calibration data. Clearing the extension's storage resets it without affecting your Monkeytype account.
- Quote, punctuation, and number tests are still compared with the plain language pool, so their percentiles can skew lower. The badge labels those modes.
- The score is a difficulty estimate, not a leaderboard ruling.
- Changes to Monkeytype's page structure can require selector updates here.
This is an unofficial extension and is not affiliated with Monkeytype.
The extension uses plain JavaScript and Manifest V3. Node.js is needed only for the repository checks.
npm install
npm run check
npm test
npm run format:checkAfter changing the files, reload the unpacked extension from your browser's extensions page and refresh Monkeytype.
