An interactive Python-based CLI tool designed for educational purposes. It helps users learn command-line utilities through repetitive interaction and hands-on practice with immediate feedback.
- Modular Plugin System: Easy addition of new command plugins
- Interactive Learning: Step-by-step tasks with immediate feedback
- Rich CLI Interface: Beautiful terminal interface using Rich library
- Progressive Difficulty: Tasks range from beginner to advanced
- Hints and Explanations: Built-in help system for learning
-
Clone the repository:
git clone <repository-url> cd utility-master
-
Install dependencies using Poetry:
poetry install
poetry run cli-tutor startpoetry run cli-tutor list-pluginspoetry run cli-tutor start --plugins-dir /path/to/custom/pluginsThe tool currently includes plugins for learning these commands:
- ls: Learn directory listing and file information
- grep: Master text searching and pattern matching
- find: Explore file and directory searching
To add a new command plugin, simply create a JSON file in cli_tutor/plugins/ (e.g., sed.json).
JSON Plugin File (cli_tutor/plugins/command.json):
{
"command": "command_name",
"description": "Brief description of what the command does",
"category": "file_system|text_processing|system|networking",
"tasks": [
{
"id": 1,
"title": "Task Title",
"description": "What the user needs to do",
"command": "expected_command",
"difficulty": "beginner|intermediate|advanced",
"hints": ["Helpful hint 1", "Helpful hint 2"],
"explanation": "Explanation of the command"
}
]
}poetry run pytestpoetry run black cli_tutor/poetry run flake8 cli_tutor/- Fork the repository
- Create a feature branch
- Add your plugin or improvement
- Write tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details.