spidey.
Typoer

Types your text
like a person would.

Typoer types any text into any window at the speed you choose. It makes the odd typo on a neighbouring key, notices, and fixes it with backspace.

A desktop app in Python. Free and open source.

Try it: this is the app's typing logic, running here

The app, mid-sentence

The Typoer window during a run. On the left an editor holds a short sample text, with the part already typed shown in yellow. On the right are sliders for speed (200 WPM) and accuracy (91%), a countdown setting and options. A bar at the bottom shows 114 of 333 characters typed, 16 seconds left, and a red Stop button.
Typoer on Linux, partway through a run. The yellow text has been typed into another window.

Speed you set

From 20 to 400 words a minute, with uneven key timing and a short pause at the end of each sentence.

Typos that look real

A slip lands on a key next to the right one, sits there for a moment, and gets backspaced. You choose how often.

Types anything

Line breaks, tabs, accents, dashes and curly quotes all arrive as written.

Hotkey or countdown

Begin with a key such as F8 and stop with Esc, or start after a 3, 5 or 10 second countdown.

Voice commands

Say "start typing" or "stop typing". This one needs a microphone and an internet connection.

Remembers your setup

Import and export .txt files. Speed, accuracy, keys and theme are saved between sessions.

Four steps to a typed page

  1. Paste your text into the editor, or import a .txt file. Typoer shows the word count and how long it will take.
  2. Set the speed and accuracy. At 91%, that's about one typo every 11 characters.
  3. Press Start, then click into the window where the text should go.
  4. Press your start key, or wait for the countdown. To stop early, press the stop key or the Stop button.
The Typoer window in its light theme, ready to start: the same sample text in the editor with 64 words, 333 characters and an estimate of about 25 seconds, and a yellow Start button.
The light theme, ready to start.

Run it from source

Three commands

git clone https://github.com/Spider2742/Typoer
cd Typoer
pip install customtkinter pyautogui keyboard plyer speechrecognition pyaudio pystray pillow pyttsx3
python Typoer.py

Good to know

  • Global hotkeys need root on Linux and accessibility permission on macOS. Without them, Typoer starts on a countdown instead.
  • On Linux, keys are sent through X11, so the window you type into has to be an X11 or XWayland app.
  • Emergency stop: throw the mouse into a corner of the screen and typing ends at once.

Open source, MIT licensed

Get it on GitHub

Inspired by the original idea in georgetian3/typoer.

More projects

See all