CLI Utils Documentation
Welcome to CLI Utils - a modern CLI application designed to organize and manage your Python scripts for both local tasks and remote API interactions.
Features
- Modular Architecture: Easily add new commands by creating Python files in organized directories
- Auto-Discovery: Commands are automatically discovered and loaded from the commands directory
- Command Groups: Organize related commands into groups (e.g., text_utils, file_ops)
- Rich Output: Beautiful terminal output using Rich library
- Smart Icon System: Automatic Nerd Font detection with emoji and text fallbacks
- Type-Safe: Full type hints throughout the codebase
- Well-Tested: Comprehensive test suite with pytest
- Documented: Auto-generated API documentation from docstrings
Quick Example
# Convert text to uppercase
cli-utils local text-utils uppercase "hello world"
# Get help for any command
cli-utils --help
cli-utils local --help
cli-utils local text-utils --help
Project Structure
cli_utils/
├── src/
│ ├── cli_utils/
│ │ ├── main.py # Main entry point
│ │ ├── config.py # Configuration management
│ │ ├── core/ # Core utilities
│ │ │ └── plugin_loader.py
│ │ ├── commands/ # Command modules
│ │ │ ├── local/ # Local task commands
│ │ │ │ ├── text_utils/
│ │ │ │ ├── file_ops/
│ │ │ │ ├── system_info/
│ │ │ │ └── devtools/
│ │ │ └── remote/ # Remote API commands
│ │ └── utils/ # Shared utilities
│ ├── docs/ # Documentation
│ └── tests/ # Test suite
├── pyproject.toml
└── mkdocs.yml
Getting Started
- Installation Guide - Install CLI Utils on your system
- Command Reference - Complete documentation of all available commands
- Quick Start - Learn the basics in 5 minutes
- Examples - Detailed usage examples for each command group
Design Philosophy
CLI Utils is built with the following principles:
- Modularity: Each command is self-contained and independent
- Discoverability: Auto-load commands from directories without manual registration
- Type Safety: Full type hints for better IDE support and fewer bugs
- Documentation: Comprehensive docstrings on everything
- Testability: Easy to test individual components
- Extensibility: Simple to add new commands without modifying core code