Keyarch โจ๏ธ
โโ โโโโโโโโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโ โโ
โโโโโ โโ โ โโโ โโโโโโโโโ โโโ โ โโโโโโโ โโ โโโโ โโโ
โโโโโโ โโโโ โโโ โโโโโโ โโโ โโโ โโโ โโโโ โ โโโโโโโโ
โโโ โโ โโโ โ โ โโโโโโโโโโโโโโ โโโโโโโ โโโโ โโโโโโโ โโโ
โโโโ โโโโโโโโโ โ โโโโโ โโ โโโโโโโโ โโโโโ โโโโโ โโโโโโโโโ
โ โโ โโโโ โโ โ โโโโโ โโ โโโโโ โโ โโโโโ โโ โ โ โ โโโโโ
A minimal, beautiful typing test for your terminal

โจ Features
๐ฏ Core Features
- Multiple Test Modes: Timer (15s-120s), Word (25-200), Quote, Code (10 languages)
- Real-Time Stats: WPM, CPM, Accuracy, Mistakes
- 10 Beautiful Themes: Catppuccin, Nord, Dracula, Gruvbox, Rose Pine, Tokyo Night, One Dark, Monokai, Solarized, Material
- Performance Tracking: History, streaks, weak keys analysis
- Local Storage: All data stored in
~/.keyarch/
๐ฎ Gamification
- 23 Achievements: Speed, Accuracy, Dedication, Consistency badges
- Daily & Weekly Goals: Auto-reset goals with progress tracking
- Progress Dashboard: 3-tab interface (Achievements, Daily, Weekly)
- Hidden Achievements: Unlock surprises at expert milestones
๐ Advanced Features
- ๐ Live WPM Graph: Real-time sparkline showing speed trends during test
- ๐ฏ Difficulty Levels: Easy/Medium/Hard word sets (300+ words)
- ๐ Sound Effects: Keystroke sounds, achievement/goal notifications
- ๐ฅ Typing Heatmap: Color-coded keyboard showing key accuracy
๐ Installation
Prerequisites
From Source
git clone https://github.com/vinayydv3695/keyarch.git
cd keyarch
go mod tidy
go build -o keyarch ./cmd/keyarch
sudo mv keyarch /usr/local/bin/ # Optional
Quick Install
go install github.com/vinayydv3695/keyarch/cmd/keyarch@latest
๐ฎ Usage
# Launch TUI
keyarch
# Direct modes
keyarch --mode quick --duration 30
keyarch --mode words --words 50
keyarch --mode quote
keyarch --mode code
# With theme
keyarch --theme dracula
โจ๏ธ Keyboard Shortcuts
โ/โ or j/k - Navigate
Enter - Select
ESC - Back
Ctrl+C - Quit
Backspace - Delete character
๐จ Themes
Switch themes from the menu or use --theme flag:
๐ Available Themes
- Catppuccin Mocha (default) - Soft pastels
- Nord - Arctic blues
- Dracula - Vibrant dark
- Gruvbox Dark - Warm retro
- Rose Pine - Elegant cozy
- Tokyo Night - Modern clean
- One Dark - Classic Atom
- Monokai - Sublime colors
- Solarized Dark - Precision colors
- Material Dark - Google design
๐ป Code Mode Languages
Practice typing in 10 programming languages:
- Go, JavaScript, TypeScript, Python, Rust
- C++, Java, C#, Ruby, PHP
๐ Statistics
Track your progress with:
- Test history with timestamps
- Best and average WPM
- Accuracy trends
- Daily streaks
- Weak keys identification
Data stored in: ~/.keyarch/keyarch.db
๐ ๏ธ Development
# Run
go run ./cmd/keyarch
# Build
go build -ldflags="-s -w" -o keyarch ./cmd/keyarch
# Test
go test ./...
๐ License
MIT License - see LICENSE file
๐ Credits
Built with:
````
๐ Installation
Prerequisites
- Go 1.22 or higher
- A terminal with Unicode support
From Source
# Clone the repository
git clone https://github.com/vinayydv3695/keyarch.git
cd keyarch
# Install dependencies
go mod tidy
# Build the application
go build -o keyarch ./cmd/keyarch
# Move to PATH (optional)
sudo mv keyarch /usr/local/bin/
Quick Install
go install github.com/vinayydv3695/keyarch/cmd/keyarch@latest
๐ฎ Usage
Launch the TUI
keyarch
# Quick 15-second test
keyarch --mode quick
# 30-second timed test
keyarch --mode quick --duration 30
# 50-word test
keyarch --mode words --words 50
# Random quote
keyarch --mode quote
# Code snippet
keyarch --mode code
Theme Selection
# Set theme via CLI
keyarch --theme dracula
keyarch --theme nord
keyarch --theme gruvbox-dark
keyarch --theme catppuccin-mocha
โจ๏ธ Keyboard Shortcuts
Navigation
โ/โ or j/k - Navigate menus
Enter or Space - Select/Confirm
ESC - Go back
Ctrl+C or q - Quit
During Test
Backspace - Delete character
ESC - Exit to menu
Ctrl+C - Quit application
๐ Project Structure
keyarch/
โโโ cmd/
โ โโโ keyarch/
โ โโโ main.go # Application entry point
โ
โโโ internal/
โ โโโ engine/ # Typing test logic
โ โ โโโ engine.go # WPM, accuracy, input handling
โ โ
โ โโโ tui/ # BubbleTea UI
โ โ โโโ home/ # Home menu screen
โ โ โโโ test/ # Active test screen
โ โ โโโ summary/ # Results summary screen
โ โ โโโ stats/ # Statistics dashboard
โ โ โโโ theme/ # Theme selector
โ โ โโโ components/ # Reusable UI components
โ โ
โ โโโ storage/ # SQLite database
โ โ โโโ db.go # Database operations
โ โ โโโ models.go # Data models
โ โ
โ โโโ config/ # Configuration
โ โ โโโ config.go # App settings
โ โ โโโ theme.go # Theme definitions
โ โ
โ โโโ data/ # Text generation
โ โโโ words.go # Word lists & quotes
โ โโโ snippets.go # Code snippets
โ
โโโ assets/
โ โโโ words/ # Word lists
โ โ โโโ easy.txt
โ โ โโโ medium.txt
โ โ โโโ hard.txt
โ โโโ snippets/ # Code snippets
โ โโโ go/
โ โโโ js/
โ โโโ py/
โ โโโ rs/
โ
โโโ go.mod
โโโ go.sum
โโโ README.md
๐จ Themes
Catppuccin Mocha (Default)
Soft, pastel colors with excellent contrast. Perfect for long typing sessions.
Nord
Cool, arctic-inspired palette. Clean and minimal.
Dracula
Dark theme with vibrant accent colors. High contrast for visibility.
Gruvbox Dark
Warm, retro-inspired colors. Easy on the eyes.
Switch themes: Navigate to "Themes" in the main menu or use --theme flag.
๐ Statistics
Keyarch tracks your progress locally:
- Test History: All your typing tests with timestamps
- Best Scores: Track your personal records
- Accuracy Trends: See how your accuracy improves
- Weak Keys: Identify which keys you mistype most
- Daily Streaks: Stay motivated with daily practice
All data is stored in ~/.keyarch/keyarch.db
๐ ๏ธ Development
Run in Development
go run ./cmd/keyarch
Run Tests
go test ./...
Build for Production
# Current platform
go build -ldflags="-s -w" -o keyarch ./cmd/keyarch
# Cross-compile for Linux
GOOS=linux GOARCH=amd64 go build -o keyarch-linux ./cmd/keyarch
# Cross-compile for macOS
GOOS=darwin GOARCH=arm64 go build -o keyarch-macos ./cmd/keyarch
# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -o keyarch.exe ./cmd/keyarch
๐ Documentation
๐ค Contributing
Contributions are welcome! Here are some ideas:
- ๐ Add more language support
- ๐จ Create new themes
- ๐ Add more quotes and code snippets
- ๐ Fix bugs and improve performance
- ๐ Improve documentation
Steps to Contribute
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
๐ฏ Roadmap
โ
Completed
- 23 Achievement system with badges
- Daily and weekly goals
- Live WPM graph during tests
- Difficulty levels (Easy/Medium/Hard)
- Sound effects system
- Typing heatmap visualization
- 10 beautiful themes
- 10 programming languages
๐ง In Progress
- Online quote API integration
- Custom word lists
- Multiplayer mode (local network)
๐ Planned
- GitHub Gist leaderboard sync
- Custom themes (JSON config)
- Export statistics as JSON/CSV
- Mobile-friendly version
- Plugin system
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Built with amazing open-source libraries:
Inspired by:
Author: Vinay Yadav
GitHub: @vinayydv3695
Project: Keyarch
Made with โค๏ธ and โจ๏ธ
Happy typing!