# CLI Explain Fix A CLI tool that parses command output (errors, JSON, logs, stack traces) and generates human-readable explanations with actionable fix suggestions. Works offline without any API, supports multiple programming languages, and can be piped to from any command. ## Features - **Multi-language Support**: Python, JavaScript, Go, Rust, JSON, YAML, and generic CLI errors - **Offline Knowledge Base**: No API calls required - all explanations stored locally - **Rich Terminal Output**: Beautiful formatted output using the Rich library - **Pipe-friendly**: Easy to pipe errors from any command - **Configuration**: User preferences stored in config file - **Multiple Output Formats**: Rich, JSON, or plain text output ## Installation ```bash # Install from source git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/cli-explain-fix.git cd cli-explain-fix pip install -e . # Or install dependencies manually pip install -r requirements.txt ``` ## Usage ### Pipe errors from any command ```bash # Python error python script.py 2>&1 | cli-explain-fix # JavaScript error node app.js 2>&1 | cli-explain-fix # Any command output make 2>&1 | cli-explain-fix ``` ### Direct input ```bash cli-explain-fix main "ValueError: invalid value for int()" # With explicit language cli-explain-fix main --lang python "ImportError: No module named requests" ``` ### File input ```bash cli-explain-fix main --file error.txt ``` ### Output formats ```bash # JSON output cli-explain-fix main --json "ValueError: test" # Plain text output cli-explain-fix main --plain "ValueError: test" # No colors cli-explain-fix main --no-color "ValueError: test" ``` ### Verbose mode ```bash cli-explain-fix main --verbose "ValueError: test" ``` ### List supported languages ```bash cli-explain-fix list-languages ``` ### List known errors ```bash # All errors cli-explain-fix list-errors # Filter by language cli-explain-fix list-errors --lang python ``` ### Show current configuration ```bash cli-explain-fix show-config ``` ## Configuration Configuration is stored in `~/.config/cli-explain-fix/config.yaml`. ### Environment Variables | Variable | Description | |----------|-------------| | `CLI_EXPLAIN_FIX_LANG` | Default language for explanations | | `CLI_EXPLAIN_FIX_OUTPUT` | Output format (rich, json, plain) | | `CLI_EXPLAIN_FIX_VERBOSE` | Verbosity level (0-2) | | `CLI_EXPLAIN_FIX_THEME` | Color theme for Rich output | ### Example Config File ```yaml default_language: python output_format: rich verbosity: 1 theme: default ``` ## Supported Error Types ### Python - ImportError, ValueError, TypeError, SyntaxError - KeyError, IndexError, AttributeError - FileNotFoundError, and more... ### JavaScript - ReferenceError, TypeError, SyntaxError - RangeError, and more... ### Go - Panic errors (nil pointer, index out of range) ### Rust - Panic errors, borrow checker errors - Trait bound errors ### Common CLI Tools - Git (merge conflicts, not a repo) - Docker (connection errors, image not found) - Kubernetes (connection errors, resource not found) - npm (permission errors, ENOENT) - And more... ## Development ```bash # Clone the repository git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/cli-explain-fix.git # Install in development mode pip install -e ".[dev]" # Run all tests pytest -v --tb=short # Run with coverage pytest --cov=src --cov-report=term-missing # Run specific test file pytest tests/test_parser.py -v ``` ### Project Structure ``` cli-explain-fix/ ├── pyproject.toml ├── requirements.txt ├── README.md ├── .gitignore ├── src/ │ └── cli_explain_fix/ │ ├── __init__.py │ ├── main.py │ ├── cli.py │ ├── parser.py │ ├── explainer.py │ ├── knowledge_base.py │ └── config.py ├── tests/ │ ├── conftest.py │ ├── test_parser.py │ ├── test_explainer.py │ └── test_cli.py └── knowledge_base/ ├── errors.yaml └── patterns.yaml ``` ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests for new functionality 5. Run tests to ensure everything passes 6. Submit a pull request ## License MIT License