coding-type is a high-performance, terminal-based typing tutor designed specifically for software engineers and students preparing for coding interviews. Practice real-world algorithm patterns and LeetCode-style problems directly in your CLI to improve your coding speed, accuracy, and muscle memory.
Modern technical interviews aren't just about solving the problem; they're about communicating and implementing your solution efficiently. coding-type helps you:
- Master Algorithm Patterns: Practice common templates for BFS, DFS, Binary Search, and Dynamic Programming.
- Improve Muscle Memory: Type syntax-heavy code in Python, JavaScript, TypeScript, Go, and C++ faster.
- Stay in the Flow: Practice directly in your terminal, mirroring a real development environment.
- Track Progress: Monitor your WPM (Words Per Minute) and accuracy with a persistent history log.
- 5 Languages Supported: Python, JavaScript, TypeScript, Go, and C++.
- Algorithm-Focused Snippets: Curated snippets covering real-world algorithm patterns.
- 3 Difficulty Levels: Easy, medium, and hard snippets to challenge your skills.
- Timed & Practice Modes: Race against the clock or practice at your own pace.
- Syntax Highlighting: Beautiful Catppuccin Mocha theme highlighting to simulate your IDE.
- Persistent Progress: Your history and preferences are saved locally at
~/.config/coding-type/. - Smart Selection: The engine avoids showing you the same snippet twice in a row.
curl -fsSL https://raw.githubusercontent.com/IFAKA/coding-type/main/install.sh | shgo install github.com/IFAKA/coding-typing-tutor@latestSimply run:
coding-type| Key | Action |
|---|---|
← / → |
Change selected option |
↑ / ↓ or Tab |
Move between rows |
Enter |
Start typing |
s |
View session stats |
Backspace |
Delete last character |
Ctrl+R |
Restart current snippet |
Esc |
Back to main menu |
q |
Quit application |
If you want to build from source:
git clone https://github.com/IFAKA/coding-typing-tutor
cd coding-type
go build -o coding-type .Or run directly without building:
go run .Contributions are welcome! If you have more algorithm snippets or feature ideas, feel free to open an issue or submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made for developers who want to type as fast as they think.

