monkeytui

command module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: MIT Imports: 17 Imported by: 0

README

monkeytui

A minimalist monkeytype-style typing test for your terminal.

Written in Go with Bubble Tea · adapts to your terminal's color theme.

demo

Go Release


Features

  • Three test modestime (15/30/60/120s), words (10/25/50/100), and quote.
  • Live feedback — per-character coloring, a smooth blinking caret, mistakes in red.
  • Rich results — a braille WPM/raw graph (with error markers), accuracy, raw WPM, consistency, a character breakdown, and a colored replay of what you typed.
  • Command palette — monkeytype-style: hit Tab/Esc to switch mode, time, word count or accent theme without touching the mouse.
  • Theme-adaptive — all colors come from your terminal's own ANSI palette, so it looks at home in gruvbox, nord, dracula, solarized, or whatever you run.

Install

No Go toolchain required — the script downloads a prebuilt binary for your platform:

curl -fsSL https://raw.githubusercontent.com/ricardojparram/monkeytui/main/install.sh | bash
Other ways to install

With Go:

go install github.com/ricardojparram/monkeytui@latest

Manual download: grab a binary from the latest release, chmod +x it, and move it onto your PATH. Verify with sha256sum -c checksums.txt.

OS Arch Asset
Linux x86_64 monkeytui_linux_amd64
Linux arm64 monkeytui_linux_arm64
macOS Intel monkeytui_darwin_amd64
macOS Apple Silicon monkeytui_darwin_arm64
Windows x86_64 monkeytui_windows_amd64.exe
Update / uninstall
monkeytui update      # download and install the latest release
monkeytui uninstall   # remove the installed binary
monkeytui version     # print the installed version

Usage

monkeytui                          # default: 30s time mode, yellow accent
monkeytui -mode words -words 50
monkeytui -mode quote
monkeytui -mode time -time 60 -theme cyan
monkeytui -seed 42                 # reproducible word sequence
Flag Default Description
-mode time time, words, or quote
-time 30 seconds, for time mode
-words 25 word count, for words mode
-theme yellow accent: yellow green cyan magenta blue red
-seed 0 fixed RNG seed (0 = random)
-punctuation false mix in punctuation (time/words modes)
-numbers false mix in numbers (time/words modes)
History & settings

monkeytui remembers your last mode, duration, word count, theme, and punctuation/numbers toggles between runs (stored in your OS config dir, e.g. ~/.config/monkeytui/). Explicit flags always override the saved settings.

Every finished test is recorded; see a summary with:

monkeytui stats

The results screen shows new pb when you beat your best for the current mode.

Keys

Key Action
any letter type
Space next word
Backspace delete (steps into the previous word)
Tab / Esc open the command palette
Enter (on results) next test
Ctrl+C quit

In the command palette: type to filter, / to move, Enter to apply, Esc to close. The palette includes toggles for punctuation and numbers word decoration.

Building from source

git clone https://github.com/ricardojparram/monkeytui
cd monkeytui
go build -o monkeytui .
go test ./...

The demo GIF is generated from demo.tape with VHS: vhs demo.tape.

Contributing

Contributions are welcome — see CONTRIBUTING.md for the workflow, project layout, and conventions.

Credits

Inspired by monkeytype by Miodec and contributors — the typing test that set the bar for feel and presentation. monkeytui is an independent reimplementation for the terminal and reproduces the experience, not the code.

Built on the wonderful Charm libraries — Bubble Tea and Lip Gloss — and ntcharts for the results graph.

License & attribution

monkeytui is licensed under the MIT License.

  • This project contains no monkeytype source code. It is an original Go implementation; monkeytype itself is licensed GPL-3.0 and none of it is copied, linked, or distributed here.
  • The bundled word list is a hand-authored set of common English words (word frequency is factual and not copyrightable). The quotes are short, attributed quotations.
  • "monkeytype" is the name of that separate project. monkeytui is not affiliated with, endorsed by, or connected to monkeytype; the name is a nod, used in the nominative sense ("a monkeytype-style test").

Documentation

Overview

monkeytui is a minimalist monkeytype-style typing test for the terminal.

Directories

Path Synopsis
internal
quotes
Package quotes provides a small bundled set of quotes for quote-mode tests.
Package quotes provides a small bundled set of quotes for quote-mode tests.
stats
Package stats computes typing-test metrics: WPM, raw WPM, accuracy, consistency, and the per-second sample series used for the results chart.
Package stats computes typing-test metrics: WPM, raw WPM, accuracy, consistency, and the per-second sample series used for the results chart.
store
Package store persists monkeytui preferences and test history under the user's config directory.
Package store persists monkeytui preferences and test history under the user's config directory.
theme
Package theme defines lipgloss styles built from ANSI 0-15 colors so the UI follows whatever palette the user's terminal is configured with.
Package theme defines lipgloss styles built from ANSI 0-15 colors so the UI follows whatever palette the user's terminal is configured with.
typing
Package typing implements the core typing-test engine: target generation, keystroke handling (per-word, monkeytype-style), timing and metric capture.
Package typing implements the core typing-test engine: target generation, keystroke handling (per-word, monkeytype-style), timing and metric capture.
ui
Package ui wires the typing engine, theme, command palette and views into a single bubbletea program.
Package ui wires the typing engine, theme, command palette and views into a single bubbletea program.
words
Package words provides the bundled English word list and random generators used to build typing tests.
Package words provides the bundled English word list and random generators used to build typing tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL