Skip to content

chasejstone/monkeytype-pull-luck

Repository files navigation

Pull Luck for Monkeytype

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.

Pull Luck rating a live Monkeytype word pull

The expanded badge shows the pull percentile, projected WPM, difficulty modifier, keyboard-pattern breakdown, and worst bigrams for a live 100-word English test.

Install

Chrome, Edge, Brave, or Opera

  1. Download pull-luck-v1.1.0.zip from the latest release and unzip it somewhere permanent.
  2. Open your browser's extensions page, such as chrome://extensions or edge://extensions.
  3. Turn on developer mode.
  4. Choose Load unpacked and select the folder containing manifest.json.
  5. Open or refresh Monkeytype.

Firefox

  1. Open about:debugging.
  2. Choose This Firefox, then Load Temporary Add-on.
  3. Select manifest.json.

Temporary Firefox add-ons unload when the browser restarts.

What it shows

  • 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.

How the rating works

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.

Data and privacy

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.

Limits

  • 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.

Development

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:check

After changing the files, reload the unpacked extension from your browser's extensions page and refresh Monkeytype.

License

MIT

About

A browser extension that rates Monkeytype test difficulty and estimates how each word pull affects your WPM.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors