TypingTrainer

On-device drills first. Packs if it can’t.

Offline typing gym for code and prose. An embedded LLM writes the next exercise; bundled packs keep practice moving when generation fails.

Desktop · v0.1.0 · Local LLM

Train on the characters you actually type.

Most typing apps grind generic English. TypingTrainer trains TypeScript, Python, Rust, Go, shell, HTML/CSS, essay structure, and symbol bursts — with every session and every model call staying on the machine after install. Generate is the hero path; packs are the safety net.

Generate, then type

Local Qwen2.5-1.5B writes a short correct snippet or science paragraph. Validate, retry, then fall back to a curated pack if needed.

TypingTrainer generate panel creating a local LLM drill
Generate-first experience — model warm-up, length, and prefetch live in Settings.

How a session runs

Three workflows that define the product.

On-device generation of a typing drill

01 · LLM first

Fresh drills from the desktop model.

Home → Code or Text → Generate. Categories cover code, essay, fingers, and symbols. Bad output triggers retries; essays can use internal templates before the app opens a bundled pack so practice never stalls.

Live typing practice with a code snippet

02 · Practice modes

Snippet, timed, symbols, custom paste.

Type full drills, run 30/60/120s timers, grind symbol bursts, or paste your own material with a language tint. Strict mode, key sounds, and font size stay under Settings.

Results and progress charts in TypingTrainer

03 · Results & progress

WPM, hotspots, coverage, export.

See accuracy, consistency, and per-character error hotspots. Progress tracks bundled vs generated drills, pack completion, and WPM over time — export JSON when you want a backup.

Capabilities

Thirteen bundled packs · ~130 snippets · generate-first path.

On-device generation
Embedded Qwen2.5-1.5B Instruct writes code and prose drills. Temperature, length, warm-up, prefetch from error hotspots, disable anytime.
Bundled fallback
Packs open when the model is missing, disabled, not in the desktop shell, or output fails — also browsable as first-class practice.
Code packs
TypeScript, Python, Rust, Go, Shell, HTML & CSS basics — brackets, operators, and idioms you actually type.
Essay & fingers
Paragraphs, structure & transitions, punctuation, academic phrasing, plus right-hand–biased mixed prose.
Symbols
Brackets & pairs, operators & arrows, random symbol bursts for fluency.
Metrics
WPM, raw WPM, accuracy, consistency, error hotspots, retry / next / generate another.
Progress
Catalog coverage, generated uniqueness, best/avg WPM, trend chart, JSON export.
Privacy
Fully offline after install. SQLite on desktop; localStorage in browser mode (packs only — no LLM).

Who it’s for

Developers, writers, and air-gapped practice.

Built local-first

Tauri desktop shell required for LLM. Browser/Vite mode runs packs only. Fetch the ~1.1 GB GGUF once; then airplane-mode practice works.

Tauri 2 · React 19 · TypeScript · Vite · Rusqlite · llama.cpp (Metal) · Qwen2.5-1.5B GGUF — AI-accelerated delivery, human-architected for offline skill training.

This is an MVP / AI Capability Pack build. Related: AnyRAG.

Need an on-device AI product?

MVP sprints and the AI Capability Pack are how we ship tools like TypingTrainer — generate-first, fallback-safe, yours to own.