Using keystroke.el

To use keystroke.el, you need to:

  1. Download keystroke.el. For now, this is best accomplished by running
    git clone git://
  2. Set up the Emacs end of the data collection by loading keystroke.el and running remember-every-key-stroke.
  3. You actually probably want to set up Emacs to run load-every-key-stroke and then remember-every-key-stroke every time you start Emacs.
  4. Next, use Emacs for a while. Type something. Write a story. Hack.
  5. Emacs will save keystroke data every half-hour; or, run save-ever-key-stroke to save immediately.
  6. In the keystroke.el folder, run; it will convert Emacs's data into data consumable with JavaScript
  7. Now open up graph.html in your favorite data; if you're viewing this page, you already know how. Note that you'll need JavaScript to use the viewer properly.
  8. You probably want to set up something like Dropbox to sync the saved data between different computers.


If you're having problems, have you checked that...

Frequency (vertical) versus duration (horizontal) of key transitions.
Only some transitions are shown; those without enough data to be meaningful are elided.

Here are some basic statistics of the data you've collected.

Total Characters
Key Transitions
Typing Time

Note that you're unlikely to ever try all 100% of the possible key transitions; for example, how often do you type (]?

It's faster to go between different hands than moving the same finger back and forth.

Different Hands
Same Hand, Different Fingers
Same Hand, Same Fingers
Double-tapping a Key
Overall Average

By rough count, your slowest transition is and your fastest is

These data give a rough estimate of your real-world typing speed.

Average Word Length
Typing Speed

The numbers above are lower than what you get in a typing speed test; you type a lot of unusual character combinations and make a lot more mistakes in your everyday typing.