Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keybr.py

A terminal-based typing trainer inspired by keybr.com, built entirely in Python using the curses library.

Idea credits: The adaptive learning concept (progressive letter unlocking, per-letter confidence scoring, bigram tracking) was inspired by aradzie's keybr.com.

Features

  • 6 Practice Modes to improve different aspects of your typing
  • Real-time WPM (words per minute) tracking
  • Accuracy tracking with per-letter statistics
  • Persistent progress saved across sessions (~/.keybr_stats.json)
  • Color-coded feedback for correct and incorrect keystrokes
  • Statistics dashboard with best WPM, averages, weak letters, and session history
  • Keybr Offline mode with adaptive learning, progressive letter unlocking, and bigram tracking

Practice Modes

Mode Description
Common Words High-frequency English words (365 words)
Hard Words Challenging vocabulary (159 words)
Sentences Full sentences for flow practice (25 sentences)
Symbols & Punctuation Sentences with !, ?, ", :, ;, (), [], $ and more
Capital Letters Real sentences with proper capitalization rules
Keybr Offline Adaptive learning (keybr.com style) - progressive letter unlocking, weak-key targeting, bigram tracking

Requirements

  • Python 3
  • A terminal that supports curses (Linux / macOS)
  • Windows users will need windows-curses (pip install windows-curses)

Usage

python3 Keybr.py

Controls

Key Action
/ Navigate the menu
Enter Select a mode
ESC Return to menu during practice
Backspace Delete the last character
Any printable key Type the displayed text

How It Works

  1. Select a practice mode from the main menu
  2. Type the displayed text as accurately and quickly as possible
  3. Green = correct, Red = incorrect, Yellow underline = current character
  4. When finished, your results are shown and the next round starts automatically
  5. Press ESC at any time to return to the menu

Statistics

Your progress is saved to ~/.keybr_stats.json after every session, including:

  • Total sessions completed
  • Best and average WPM
  • Accuracy per letter (to identify weak points)
  • Session history (last 100 sessions)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Author

Created by johnvexcoder - github.com/johnvexcoder

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages