Monk-Minal is an interactive, open-source typing practice tool built for the command-line interface (CLI). It brings the functionality and ease of web-based typing tools like MonkeyType directly to your terminal, providing users with a fully offline typing practice experience. With customizable options for game type, time, word count, and difficulty levels, Monk-Minal is the perfect tool to help users improve typing speed and accuracy while enjoying a minimalistic, distraction-free environment.
Whether you're a developer, writer, or just someone looking to improve your typing skills, Monk-Minal offers an engaging and flexible platform with real-time feedback and performance tracking.
- Features
- Screenshots
- Getting Started
- Game Modes
- Performance Metrics
- Customization
- Built With
- Contributing
- License
- Authors
- Acknowledgements
- Fully Offline: Practice typing without an internet connection.
- Multiple Game Modes: Choose between time-based, word count, or quote typing challenges.
- Difficulty Levels: Select from Easy, Medium, or Hard word challenges.
- Real-Time Feedback: Provides live updates on typing speed, errors, and accuracy.
- Customizable Time and Word Count: Tailor your sessions with flexible time and word count limits.
- Detailed Performance Metrics: Track Words Per Minute (WPM), accuracy, and errors to gauge improvement.
- Command-Line Interface (CLI): Simple and clean interface with intuitive prompts for selection.
Before you begin, ensure you have Node.js installed on your system. You can verify this by running:
node -v
If Node.js is not installed, download and install it from here.
-
Clone the repository:
git clone https://github.com/shikhar13012001/monk-minal.git
-
Navigate to the project directory:
cd monk-minal
-
Install the required dependencies:
npm install
-
Link the package locally for easy CLI access:
npm link
Now, you can run the CLI by entering:
mnm
To start using Monk-Minal, simply type mnm
in your terminal and follow the interactive prompts to customize your typing session.
mnm
You'll be asked to choose the following options:
- Game Type: Time-based, Word count-based, or a Quote typing challenge.
- Time/Word Limit: Depending on your selected game mode, you can choose a time or word limit.
- Difficulty: Select between Easy, Medium, or Hard word difficulty.
The game will start once you press any key. After completing the session, you'll receive feedback on your performance, including your Words Per Minute (WPM), accuracy, and errors.
Monk-Minal offers three distinct game modes to cater to different practice styles:
-
Time Mode:
- Focuses on typing for a set duration (15s, 30s, 60s, 120s).
- Perfect for practicing sustained typing speed over a period of time.
-
Word Mode:
- Lets you practice typing a specific number of words (e.g., 10, 20, 30, 40, 50 words).
- Great for short bursts of typing or focused word count-based exercises.
-
Quote Mode:
- Type out randomly selected famous quotes.
- Ideal for those who want a mix of word challenges and inspirational quotes.
Monk-Minal provides real-time feedback and a comprehensive summary of your performance at the end of each session. The performance metrics include:
- Gross WPM: The total words typed per minute (including errors).
- Net WPM: Adjusted for accuracy, this value represents your effective typing speed after accounting for errors.
- Accuracy: A percentage of how many characters you typed correctly, relative to the total characters typed.
- Errors: Shows where and how many typing errors were made.
This detailed feedback helps track improvement and gives users actionable insights to enhance their typing skills.
Monk-Minal allows you to customize the following aspects of your typing practice:
- Time: Practice for a set duration.
- Words: Type a specific number of words.
- Quote: Type random quotes from a curated list.
Choose from three levels of difficulty to tailor the word selection to your current skill level:
- Easy: Generates shorter words (up to 5 characters).
- Medium: Generates words with up to 8 characters.
- Hard: Generates complex words of varying lengths (8–12 characters), testing your skill and speed.
Monk-Minal offers flexible time and word limits to suit your needs:
- Time Mode: 15 seconds, 30 seconds, 60 seconds, or 120 seconds.
- Word Mode: 10, 20, 30, 40, or 50 words.
These customizable options allow you to adjust the challenge level based on your available time and typing goals.
Monk-Minal is built using the following powerful libraries and modules:
- Chalk: Terminal string styling and coloring.
- Enquirer: Interactive prompts for user input.
- CLI-Spinners: Animated spinners to indicate elapsed time.
- Random-Words: For generating random words based on difficulty.
- Readline: Node.js module for handling user input and keypress events.
- Strip-ANSI: For stripping ANSI escape codes from terminal strings.
- Ruxe: For wrapping text output to fit terminal width.
- Ora: Elegant terminal spinners for visual feedback.
Contributions are always welcome and appreciated! To contribute:
- Fork the repository.
-
Create your feature branch:
git checkout -b feature/YourFeatureName
-
Commit your changes:
git commit -m 'Add some feature'
-
Push to the branch:
git push origin feature/YourFeatureName
- Open a pull request.
Please ensure your contributions adhere to the Code of Conduct.
Distributed under the MIT License. See LICENSE for more information.
- Shikhar Gupta - GitHub Profile
Special thanks to the open-source community for the amazing libraries and tools that made this project possible.