Config Auditor CLI

A powerful CLI tool that scans project configuration files, detects issues and vulnerabilities, suggests intelligent fixes using local LLMs, and can automatically fix common problems. Supports package.json, tsconfig.json, .eslintrc, pyproject.toml, and other common config formats.

CI Status Python Version License

Features

  • Config File Discovery - Automatically discover and collect configuration files in project directories
  • Multi-format Parser - Parse JSON, YAML, TOML configuration files with ease
  • Issue Detection Engine - Analyze configs for common issues like outdated dependencies, security vulnerabilities, and incorrect settings
  • Auto-fix Capability - Automatically fix common configuration problems with backup support
  • Local LLM Integration - Integrate with local LLMs (Ollama) for intelligent recommendations with explanations
  • Optimal Config Generation - Generate optimized configurations based on project patterns
  • Report Generation - Generate detailed audit reports in JSON, YAML, or pretty-printed text formats

Installation

From Source

pip install -e .

Dependencies

  • Python 3.9+
  • Click 8.1.7+
  • PyYAML 6.0.1+
  • toml 0.10.2+
  • requests 2.31.0+
  • semver 3.0.2+
  • packaging 23.2+
  • ollama 0.1.41+ (optional, for LLM features)

Quick Start

# Scan a directory for configuration files
config-auditor scan /path/to/project

# Audit configuration files for issues
config-auditor audit /path/to/project

# Automatically fix detected issues
config-auditor fix /path/to/project

# Generate optimal configurations
config-auditor generate --template node /path/to/project

Commands

scan

Scan a directory for configuration files.

config-auditor scan [OPTIONS] [PATH]

Options:
  -p, --path PATH     Path to scan (default: current directory)
  -f, --format FORMAT Output format: json, yaml, text (default: text)
  -v, --verbose       Enable verbose output

Example:

config-auditor scan /my/project -v
# Found 5 configuration files
# Found: /my/project/package.json (json)
# Found: /my/project/tsconfig.json (json)
# Found: /my/project/.eslintrc.json (json)
# Found: /my/project/pyproject.toml (toml)
# Found: /my/project/.prettierrc (json)

audit

Audit configuration files for issues and vulnerabilities.

config-auditor audit [OPTIONS] [PATH]

Options:
  -p, --path PATH     Path to scan (default: current directory)
  -f, --format FORMAT Output format: json, yaml, text (default: text)
  -v, --verbose       Enable verbose output

Example:

config-auditor audit /my/project --format json
# Returns detailed JSON report with all issues found

fix

Automatically fix detected issues.

config-auditor fix [OPTIONS] [PATH]

Options:
  -p, --path PATH     Path to scan (default: current directory)
  --dry-run           Preview changes without applying them
  --force             Skip confirmation
  -v, --verbose       Enable verbose output

Example:

# Preview fixes without applying
config-auditor fix /my/project --dry-run

# Apply fixes automatically
config-auditor fix /my/project --force

generate

Generate optimal configurations based on project type.

config-auditor generate [OPTIONS] [PATH]

Options:
  -p, --path PATH       Path to scan (default: current directory)
  -t, --template TYPE   Template type: node, python, typescript
  -f, --format FORMAT   Output format: json, yaml, text (default: json)

Example:

# Auto-detect project type and generate config
config-auditor generate /my/project

# Generate Node.js config
config-auditor generate /my/project --template node

# Generate Python config
config-auditor generate /my/project --template python

config

Show current configuration.

config-auditor config

Supported Configuration Formats

Format Extensions Parser
JSON .json stdlib json
YAML .yaml, .yml PyYAML
TOML .toml toml library

Supported Configuration Files

  • package.json - Node.js package configuration
  • tsconfig.json - TypeScript configuration
  • .eslintrc.json, .eslintrc.js, .eslintrc.yaml - ESLint configuration
  • .prettierrc, .prettierrc.json, .prettierrc.yaml - Prettier configuration
  • pyproject.toml - Python project configuration
  • setup.py, setup.cfg - Python setup configuration
  • .babelrc, babel.config.js - Babel configuration
  • next.config.js, next.config.mjs - Next.js configuration
  • And many more...

Exit Codes

Code Description
0 Success - no issues found
1 General error
2 Configuration error
3 No config files found
4 Issues detected but not fixed
5 Fixes applied successfully
6 LLM unavailable

Configuration

Create a config.yaml file in your project root to customize behavior:

llm:
  endpoint: "http://localhost:11434"  # Ollama endpoint
  model: "llama3"                      # Model name
  temperature: 0.7                     # Sampling temperature
  timeout: 30                          # Request timeout in seconds

audit:
  max_depth: 3                         # Directory scan depth
  severity_levels:
    - critical
    - warning
    - info

fix:
  create_backup: true                  # Create backups before fixing
  backup_dir: ".config_auditor_backup" # Backup directory
  dry_run_default: false               # Default dry-run mode

LLM Integration

Config Auditor can use local LLMs (via Ollama) for intelligent recommendations:

# Ensure Ollama is running
ollama serve

# Install a model
ollama pull llama3

# Run audit with LLM recommendations
config-auditor audit /my/project

The LLM provides:

  • Context-aware explanations for detected issues
  • Suggestions for optimal configuration values
  • Best practices recommendations for your specific project type

Development

Setup

# Clone the repository
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/config-auditor-cli.git
cd config-auditor-cli

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/ -v --cov=config_auditor

# Run linting
ruff check config_auditor/ tests/

Project Structure

config-auditor-cli/
├── config_auditor/
│   ├── __init__.py          # Package marker
│   ├── cli.py               # CLI commands and entry point
│   ├── discovery.py         # Config file discovery engine
│   ├── parsers.py           # Format-specific parsers
│   ├── rules.py             # Issue detection rules
│   ├── fixes.py             # Auto-fix functionality
│   ├── llm.py              # Local LLM integration
│   ├── generate.py          # Config generation
│   ├── report.py            # Report generation
│   └── utils.py             # Utility functions
├── tests/
│   ├── conftest.py          # Test fixtures
│   ├── test_cli.py          # CLI tests
│   ├── test_parsers.py      # Parser tests
│   ├── test_rules.py        # Rule tests
│   ├── test_fixes.py        # Fixer tests
│   ├── test_llm.py          # LLM client tests
│   ├── test_generate.py     # Generator tests
│   ├── test_report.py       # Report tests
│   └── test_utils.py        # Utility tests
├── config_auditor.py        # Entry point
├── requirements.txt         # Dependencies
├── setup.py                 # Package setup
├── config.yaml             # Default configuration
└── README.md               # This file

Running Tests

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ -v --cov=config_auditor --cov-report=term-missing

# Run specific test file
pytest tests/test_cli.py -v

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Description
A CLI tool that scans project configuration files, detects issues and vulnerabilities, suggests intelligent fixes using local LLMs, and can auto-fix common problems.
Readme MIT 124 KiB
v1.0.0 Latest
2026-01-30 18:05:27 +00:00
Languages
Python 100%