Observed since 21 Oct, 10:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AI-powered lint error detection and fixing using aider.chat
Automated lint error detection and fixing powered by aider.chat and AI
Aider Lint Fixer is an intelligent tool that automatically detects lint errors in your codebase and fixes them using AI-powered code generation through aider.chat.
📋 See CHANGELOG.md for complete version history and GitHub Releases for detailed release notes
--resume-sessionpip install aider-lint-fixer[learning] includes all dependencies.eslintrc.js, tsconfig.json, npm scripts| Linter | Tested Version | Supported Versions | Profile Support |
|---|---|---|---|
| ansible-lint | 25.6.1 / 6.22.2 / 24.12.2 | All versions via ANSIBLE_LINT_VERSION | ✅ basic, production |
| Linter | Tested Version | Supported Versions | Profile Support |
|---|---|---|---|
| flake8 | 7.3.0 | 7.3.0, 7.2.x, 7.1.x, 7.0.x, 6.x | ✅ basic, strict |
| pylint | 3.3.7 | 3.3.7, 3.3.x, 3.2.x, 3.1.x, 3.0.x, 2.x | ✅ basic, strict |
| Linter | Tested Version | Supported Versions | Profile Support |
|---|---|---|---|
| ESLint | 8.57.1 | 8.57.1, 8.57.x, 8.5.x, 8.x, 7.x | ✅ basic, strict |
| JSHint | 2.13.6 | 2.13.6, 2.13.x, 2.1.x, 2.x | ✅ basic, strict |
| Prettier | 3.6.2 | 3.6.2, 3.6.x, 3.x, 2.x | ✅ basic, strict |
Ansible-lint Multi-Version Support addresses the major version compatibility issues between enterprise environments and the latest container versions:
| Environment | ansible-lint | ansible-core | Usage |
|---|---|---|---|
| Latest (Technology Preview) | 25.6.1 | 2.19.0 | ANSIBLE_LINT_VERSION=latest |
| Enterprise/RHEL 9 | 6.22.2 | 2.15.13 | ANSIBLE_LINT_VERSION=enterprise |
| RHEL 10 Compatible | 24.12.2 | 2.18.8 | ANSIBLE_LINT_VERSION=rhel10 |
Why This Matters:
Container Usage Examples:
# Use enterprise-compatible version (default for RHEL environments)
podman run -e ANSIBLE_LINT_VERSION=enterprise \
-v $(pwd):/workspace:Z quay.io/takinosh/aider-lint-fixer
# Use RHEL 10 compatible version
podman run -e ANSIBLE_LINT_VERSION=rhel10 \
-v $(pwd):/workspace:Z quay.io/takinosh/aider-lint-fixer
# Use latest version (Technology Preview only)
podman run -e ANSIBLE_LINT_VERSION=latest \
-v $(pwd):/workspace:Z quay.io/takinosh/aider-lint-fixer
pip install aider-chat)# Use pre-built Docker image from quay.io
docker run --rm -v $(pwd):/workspace:ro quay.io/takinosh/aider-lint-fixer:latest --help
# Or use with the convenience script
./scripts/containers/docker-run.sh --linters flake8,eslint
# Install aider-lint-fixer with enhanced learning features (quote for zsh compatibility)
pip install "aider-lint-fixer[learning]"
# Install from PyPI (recommended)
pip install aider-lint-fixer
# Latest v1.9.0: Install with community issue reporting and enhanced workflows
pip install aider-lint-fixer[community]
# 📊 v1.8.0: Install with enhanced interactive and progress tracking
pip install aider-lint-fixer[progress]
# 🧠 v1.7.0: Install with learning features (recommended for 46.1% fixability rate)
pip install aider-lint-fixer[learning]
# Install with all optional features (includes community + progress + learning)
pip install aider-lint-fixer[all]
# Verify installation
aider-lint-fixer --version
# Clone the repository
git clone https://github.com/tosin2013/aider-lint-fixer.git
cd aider-lint-fixer
# Create virtual environment
python3 -m venv venv
# Activate virtual environment (Linux/macOS)
source venv/bin/activate
# Upgrade pip
pip3 install --upgrade pip
# Install in development mode (recommended for latest features)
pip3 install -e .
# Install dependencies
pip3 install -r requirements.txt
# Python linters
pip3 install flake8==7.3.0 pylint==3.3.7
# Ansible linters
pip3 install ansible-lint==25.6.1
# Node.js linters (requires Node.js/npm)
npm install -g eslint@8.57.1 jshint@2.13.6 prettier@3.6.2
# Check version
python3 -m aider_lint_fixer --version
# Check supported linters
./scripts/check_supported_versions.sh
# Install directly from Git (latest development version)
pip install git+https://github.com/tosin2013/aider-lint-fixer.git
# With virtual environment (recommended for development)
python3 -m venv aider-env && source aider-env/bin/activate && pip install git+https://github.com/tosin2013/aider-lint-fixer.git
git clone https://github.com/tosin2013/aider-lint-fixer.git
cd aider-lint-fixer
python3 -m venv venv && source venv/bin/activate
pip3 install -e .
# 1. Clone and setup
git clone https://github.com/tosin2013/aider-lint-fixer.git
cd aider-lint-fixer
python3 -m venv venv && source venv/bin/activate
# 2. Install
pip3 install -e . && pip3 install -r requirements.txt
# 3. Install linters (choose your language)
pip3 install flake8==7.3.0 pylint==3.3.7 ansible-lint==25.6.1
npm install -g eslint@8.57.1 jshint@2.13.6 prettier@3.6.2
# 4. Setup environment
cp .env.example .env
# Edit .env and add your API key
# 5. Test installation
python3 -m aider_lint_fixer --help
# Run the setup script (recommended)
./setup_env.sh
# Or manually create .env file
cp .env.example .env
# Edit .env and add your DeepSeek API key
# DEEPSEEK_API_KEY=your_actual_api_key_here
# Export environment variables
export $(cat .env | grep -v '^#' | xargs)
# Check all supported linter versions
./scripts/check_supported_versions.sh
# Test with a sample project
python3 -m aider_lint_fixer . --linters flake8 --dry-run --verbose
1. Python Version Issues
# Check Python version
python3 --version # Should be 3.11+
# If python3 not found, try:
python --version # On some systems
2. Virtual Environment Issues
# If venv creation fails:
sudo apt-get install python3-venv # Ubuntu/Debian
brew install python3 # macOS
# Alternative virtual environment tools:
pip3 install virtualenv
virtualenv venv
3. Permission Issues
# If pip install fails with permissions:
pip3 install --user -e .
# Or use virtual environment (recommended):
python3 -m venv venv && source venv/bin/activate
4. Node.js Linter Issues
# Install Node.js if missing:
# Ubuntu/Debian:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# macOS:
brew install node
# Verify installation:
node --version && npm --version
5. Linter Version Conflicts
# Check current versions:
./scripts/check_supported_versions.sh
# Install specific versions:
pip3 install flake8==7.3.0 --force-reinstall
npm install -g eslint@8.57.1 --force
docs/INSTALLATION_GUIDE.mdcurl -fsSL https://raw.githubusercontent.com/tosin2013/aider-lint-fixer/main/scripts/install.sh | bash./scripts/check_supported_versions.sh--verbose to any commandDEBUG=1 environment variable# Test on a small project first
python -m aider_lint_fixer /path/to/your/project --max-files 1
# Run on your project
python -m aider_lint_fixer /path/to/your/project
# Limit scope for large projects
python -m aider_lint_fixer /path/to/your/project --max-files 5 --max-errors 10
# Verbose output for debugging
python -m aider_lint_fixer /path/to/your/project --verbose
Transform your successful fixes into community improvements:
# Enhanced interactive mode with community reporting
aider-lint-fixer --enhanced-interactive --linters ansible-lint
# After successful overrides, system prompts:
# "Would you like to help improve the system by creating community issues?"
# Browser opens with pre-filled GitHub issue for community benefit
Community Features:
Perfect for reviewing and overriding error classifications:
# Enhanced interactive mode - review each error individually
python -m aider_lint_fixer --enhanced-interactive --linters ansible-lint
# Force mode - attempt to fix ALL errors (use with caution)
python -m aider_lint_fixer --force --linters flake8
# Standard interactive mode - confirm before starting
python -m aider_lint_fixer --interactive --linters pylint
Enhanced Interactive Features:
Automatic enhanced tracking for projects with 100+ lint errors:
# Large projects automatically get enhanced progress tracking
python -m aider_lint_fixer --linters ansible-lint # 100+ errors detected
# Install with progress tracking support
pip install aider-lint-fixer[progress]
# Session management
python -m aider_lint_fixer --list-sessions
python -m aider_lint_fixer --resume-session progress_1234567890
Progress Tracking Features:
Example Output for Large Projects:
🚀 Large Project Detected (250 errors)
📁 Files: ████████████████████████████████████████ 8/10 [80%]
🔧 Errors: ████████████████████████████████████████ 200/250 [80%]
⚡ Real-time Status:
Processing rate: 2.5 files/min, 62.5 errors/min
Success rate: 85.2% (213/250)
ETA: 14:32:15
Create a .aider-lint-fixer.yml file in your project root:
# LLM Configuration
llm:
provider: "deepseek" # Options: deepseek, openrouter, ollama
model: "deepseek/deepseek-chat"
fallback_providers:
- "openrouter"
- "ollama"
# Linter Configuration
linters:
auto_detect: true
enabled:
- flake8
- eslint
- golint
- rustfmt
- ansible-lint
# Aider Configuration
aider:
auto_commit: false
backup_files: true
max_retries: 3
# Project Settings
project:
exclude_patterns:
- "*.min.js"
- "node_modules/"
- "__pycache__/"
- ".git/"
python -m aider_lint_fixer [PROJECT_PATH] [OPTIONS]
Options:
--config, -c PATH Path to configuration file
--llm TEXT LLM provider (deepseek, openrouter, ollama)
--model TEXT Specific model to use
--linters TEXT Comma-separated list of linters to run
--max-files INTEGER Maximum number of files to process
--max-errors INTEGER Maximum errors to fix per file
--dry-run Show what would be fixed without making changes
--interactive Confirm each fix before applying
--verbose, -v Enable verbose output
--log-file PATH Path to log file
--no-banner Disable banner output
--help Show this message and exit
--stats Show learning statistics and exit
Aider-lint-fixer includes an advanced learning system that improves accuracy over time by learning from successful and failed fix attempts.
# Install with learning features (includes scikit-learn)
pip install aider-lint-fixer[learning]
# Or install learning dependencies manually
pip install scikit-learn>=1.0.0 requests>=2.25.0 beautifulsoup4>=4.9.0 pyahocorasick>=1.4.0
# View learning statistics
aider-lint-fixer --stats
# View in JSON format
aider-lint-fixer --stats --output-format json
# Detailed cache management
python -m aider_lint_fixer.cache_cli --action stats
Learning data is stored in .aider-lint-cache/:
.aider-lint-cache/
├── ansible_training.json # Ansible-specific learning
├── python_training.json # Python-specific learning
├── javascript_training.json # JavaScript-specific learning
└── scraped_rules.json # Web-scraped rule knowledge
# Clean old learning data (30+ days)
python -m aider_lint_fixer.cache_cli --action cleanup --max-age-days 30
# Export learning data for backup
python -m aider_lint_fixer.cache_cli --action export --file backup.json
# Import learning data from backup
python -m aider_lint_fixer.cache_cli --action import --file backup.json
Problem: "Found 0 fixable errors (0.0% of X total baseline errors)"
This usually indicates missing learning dependencies. Check your setup:
# Quick diagnosis
python scripts/check_learning_setup.py
# Or check via stats
aider-lint-fixer --stats
Common Issues:
pip install aider-lint-fixer[learning]Expected vs Actual (v1.7.0):
# ❌ Without learning dependencies (v1.6.0 and earlier)
Found 0 fixable errors (0.0% of 58 total baseline errors)
# ✅ With learning dependencies (v1.7.0+)
Found 27 fixable errors (46.1% of 58 total baseline errors)
🎯 v1.7.0 Performance: This release resolves the critical 0.0% fixability issue!
# Focus on Python linters
python -m aider_lint_fixer --linters flake8,black,isort
# Fix formatting issues only
python -m aider_lint_fixer --linters black,isort --max-errors 20
# Focus on JavaScript linters
python -m aider_lint_fixer --linters eslint,prettier
# Interactive fixing for complex project
python -m aider_lint_fixer --linters eslint --interactive
# Focus on Ansible linting
python -m aider_lint_fixer --linters ansible-lint
# Dry run to see Ansible issues
python -m aider_lint_fixer --linters ansible-lint --dry-run
# Enhanced interactive mode for Ansible (v1.8.0)
python -m aider_lint_fixer --enhanced-interactive --linters ansible-lint
# Large project with automatic progress tracking
python -m aider_lint_fixer --linters flake8,pylint # 100+ errors
# Force mode for aggressive fixing (use with caution)
python -m aider_lint_fixer --force --max-errors 50 --linters eslint
# Resume interrupted session
python -m aider_lint_fixer --list-sessions
python -m aider_lint_fixer --resume-session progress_1234567890
# Enhanced interactive with progress tracking
python -m aider_lint_fixer --enhanced-interactive --linters ansible-lint
# Override "unfixable" errors and contribute to community
python -m aider_lint_fixer --enhanced-interactive --linters ansible-lint
# → Override yaml[trailing-spaces] classification
# → System records successful fix pattern
# → Prompts to create GitHub issue for community benefit
# Example community workflow:
# 1. User overrides "unfixable" error → Success
# 2. System analyzes pattern → Identifies improvement opportunity
# 3. GitHub issue generated → "Enhancement: Improve ansible-lint yaml[trailing-spaces] classification"
# 4. Community benefits → Higher automatic fix rates for everyone
# Install with community features
pip install aider-lint-fixer[community]
This project includes a comprehensive Makefile for development tasks:
# Show all available commands
make help
# Setup development environment
make dev-setup
# Code quality checks
make lint # Run linters
make format # Format code with black and isort
make type-check # Run mypy type checking
# Testing
make test # Run tests
make test-coverage # Run tests with coverage
# Security
make security # Run security checks
make audit # Comprehensive security audit
# Build and package
make build # Build distribution packages
make clean # Clean build artifacts
# Self-testing (test the tool on itself!)
make self-test # Run aider-lint-fixer on its own code
# Complete quality assurance
make qa # Run all quality checks
make ci # Full CI pipeline
This project uses Dependabot for automated dependency updates and security monitoring:
pip ecosystemnpm ecosystemsafety, bandit, pip-auditContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
# Automated installation for contributors
curl -fsSL https://raw.githubusercontent.com/tosin2013/aider-lint-fixer/main/scripts/install.sh | bash
# Or manual setup
git clone https://github.com/tosin2013/aider-lint-fixer.git
cd aider-lint-fixer
python3 -m venv venv && source venv/bin/activate
pip3 install -e . && pip3 install -r requirements.txt
# Check your current versions
./scripts/check_supported_versions.sh
# Install supported versions
pip3 install flake8==7.3.0 pylint==3.3.7 ansible-lint==25.6.1
npm install -g eslint@8.57.1 jshint@2.13.6 prettier@3.6.2
# Test Python linters
./scripts/version_tests/python_linters_test.sh
# Test Node.js linters
./scripts/version_tests/nodejs_linters_test.sh
# Run integration tests
python -m pytest tests/ -v
aider_lint_fixer/supported_versions.pydocs/LINTER_TESTING_GUIDE.mddocs/NODEJS_LINTERS_GUIDE.mdThis project is licensed under the MIT License - see the LICENSE file for details.
Tosin Akinosho
For detailed usage instructions, configuration options, and troubleshooting, see:
Made with ❤️ by Tosin Akinosho
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 2.0.3 | 5 Sept 2025 | 23 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Shared repository data · GitHub
Observed since 21 Oct, 10:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7efe0663d461a9a06967b76bfcd918db1f33652215a203c8fc7aa6028f75304d