MCP server for autonomous linting and governance auditing
Project description
Auto Linter
Autonomous code quality. Built for AI agents that code 24/7.
๐ค AI Agent Benefits
In AI Era, no one manually codes anymore. Your AI agent does the work.
| Benefit | Description |
|---|---|
| Autonomous Linting | Agent runs lint check without human intervention |
| Self-Healing Code | Agent auto-fixes issues automatically |
| Multi-Agent Collab | 24/7 multi agents can coordinate via shared job registry |
| Continuous Quality | Agent enforces quality gates 24/7 |
| Context-Aware | Agent understands architectural rules |
Choose Your Path
| I'm a... | Start Here | What I'll Do |
|---|---|---|
| AI Agent | SKILL.md | Autonomous linting, self-healing |
| Vibe Coder | Quick Start | Fast AI-assisted coding |
| Vibe Architect | Architecture | Architectural governance |
| Developer | Setup for AI Agents | Add features, fix bugs |
| Adapter Contributor | Contributing: Add Adapter | Integrate new linter tools |
| CLI Contributor | Contributing: Add CLI | Add new CLI commands |
Why Use Auto Linter
Stop Wasting Hours on Manual Linting โ Your competitors are already using automated quality gates.
For Users
| Benefit | Description |
|---|---|
| Easy Config | Works out-of-the-box with sensible defaults |
| Multi-Language | Python, JavaScript, TypeScript in one tool |
| AI Ready | MCP server for automated code review |
| Vibe Mode | Fast AI-assisted iterations, quality gates |
| Governance | Architectural rule enforcement (AES, Clean, Hexagonal, DDD) |
| CI-Ready | SARIF, JUnit, JSON reports with exit codes |
| Auto-Fix | Safe fixes applied automatically |
| Quality Trends | Track code quality over time |
For Contributors
| Benefit | Description |
|---|---|
| Well-Structured | 5-domain architecture with clear boundaries |
| Comprehensive Tests | 1000+ tests, 100% coverage |
| Governance Built-In | Linting governance adapter prevents violations |
| Clear Paths | Documented guides for adapters, CLI, MCP |
| Active Project | Regular updates, responsive maintainer |
Install
pip install auto-linter
Or with uv:
uv tool install auto-linter
Or zero-install:
uvx auto-lint check ./src/
Or one-liner installer (Linux/macOS):
curl -sSL https://raw.githubusercontent.com/rakaarwaky/auto-linter/main/install.sh | bash
Or for Windows (PowerShell):
Invoke-WebRequest -Uri https://raw.githubusercontent.com/rakaarwaky/auto-linter/main/install.ps1 | Invoke-Expression
Verify
auto-lint version
auto-lint setup doctor
Quick Start
# Lint your code
auto-lint check ./src/
# Auto-fix safe issues
auto-lint fix ./src/
# Security scan
auto-lint security ./src/
# Generate report
auto-lint report ./src/ --output-format json
Setup for AI Agents
Hermes Agent
pip install auto-linter
auto-lint setup hermes
This auto-detects DesktopCommander and configures Hermes automatically.
Claude Desktop / VS Code
auto-lint setup mcp-config --client claude
Copy the output to your MCP config file.
MCP Tools (5 tools)
The server registers 5 MCP tools:
| Tool | Description |
|---|---|
execute_command |
Execute any CLI command |
list_commands |
List all available CLI commands with descriptions |
read_skill_context |
Read SKILL.md documentation sections |
check_status |
Check status of running lint jobs |
health_check |
Check DesktopCommander and transport health |
Note: Job cancellation is a CLI command:
auto-lint cancel <job_id>
Transport
Auto-linter connects to DesktopCommander for command execution. Supports 3 transport modes with auto-detection:
DESKTOP_COMMANDER_URL Mode Requires
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
/run/desktop-commander/socket Unix Socket DesktopCommander
http://host:port/execute HTTP DesktopCommander HTTP wrapper
auto (default) Auto-detect tries socket -> http -> stdio
The default socket path is /run/desktop-commander/socket. Set DESKTOP_COMMANDER_URL to override.
CLI Commands
Core
| Command | Description |
|---|---|
check <path> |
Run all linters, check governance score |
--git-diff flag: only lint changed files |
|
scan <path> |
Alias for check (CI-friendly) |
fix <path> |
Apply safe fixes automatically |
report <path> |
Generate quality report (text/json/sarif/junit) |
ci <path> |
CI-optimized with exit codes |
Scans
| Command | Description |
|---|---|
security <path> |
Bandit vulnerability scanning |
complexity <path> |
Cyclomatic complexity analysis |
duplicates <path> |
Code duplication detection |
trends <path> |
Quality trends over time |
dependencies <path> |
Dependency vulnerability scan |
Setup
| Command | Description |
|---|---|
setup init |
Auto-configure for your system |
setup hermes |
Auto-install into Hermes Agent |
setup doctor |
Diagnose configuration issues |
setup mcp-config |
Print MCP config for Claude/Hermes/VS Code |
Dev
| Command | Description |
|---|---|
diff <path1> <path2> |
Compare lint results between two versions |
suggest <path> |
AI-powered fix suggestions (--ai flag) |
config show|edit|reset |
View, edit, or reset configuration settings |
export sarif|junit|json |
Export lint reports to file (-o output) |
import <config.json> |
Import configurations from file |
ignore <rule> |
Manage ignore rules (--remove to delete) |
init |
Initialize a new Auto-Linter configuration |
install-hook |
Install git pre-commit hook |
uninstall-hook |
Remove git pre-commit hook |
Maintenance
| Command | Description |
|---|---|
cancel <job_id> |
Cancel a running job |
stats <path> |
Statistics dashboard |
clean |
Cleanup cache |
update |
Update adapters |
doctor |
Diagnose issues |
version |
Show version |
adapters |
List enabled linters |
Other
| Command | Description |
|---|---|
watch <path> |
Watch files and auto-lint on changes |
batch <path1> <path2> |
Check multiple paths |
plugins |
List discovered plugins |
multi-project <paths...> |
Lint multiple projects, aggregate |
Full list: auto-lint --help
Configuration
.env (optional)
# DesktopCommander transport (auto-detected if not set):
DESKTOP_COMMANDER_URL=/run/desktop-commander/socket
# For JS/TS linters:
PHANTOM_ROOT=$HOME/
Create with: auto-lint setup init
auto_linter.config.yaml
thresholds:
score: 90.0
complexity: 10
max_file_lines: 500
adapters:
- name: ruff
status: enabled
weight: 1.0
- name: mypy
status: enabled
weight: 1.0
Architecture
5-domain structure:
src/
โโโ agent/ # Lifecycle, orchestration, pipeline, DI container
โโโ capabilities/ # Thinking logic โ analysis, formatting, governance
โโโ infrastructure/ # Adapters โ ruff, mypy, eslint, transports
โโโ surfaces/ # Interfaces โ CLI (Click), MCP (FastMCP)
โโโ taxonomy/ # Value objects, models, shared language
Dependency Rules
surfaces โ capabilities OK
surfaces โ infrastructure NO
capabilities โ infrastructure NO (use taxonomy interfaces)
capabilities โ surfaces NO
infrastructure โ taxonomy OK
agent โ everything OK (wiring layer)
Contributing
How to Add an Adapter
- Create adapter in
src/infrastructure/<tool>_adapter.pyimplementingILinterAdapter - Register in
src/agent/dependency_injection_container.py - Add tests in
tests/infrastructure/test_<tool>_adapter.py - Run:
python3 -m pytest tests/ -q
See CONTRIBUTING.md for full details.
How to Add a CLI Command
- Choose module in
src/surfaces/cli_*_commands.pybased on command type - Add command using Click decorators
- Register in
src/surfaces/mcp_command_catalog.py - Add tests
See CONTRIBUTING.md for full details.
License
MIT License. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file auto_linter-1.6.3.tar.gz.
File metadata
- Download URL: auto_linter-1.6.3.tar.gz
- Upload date:
- Size: 85.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7dd4e36b6db621b39d65c9802e1ae389591134a05d403a0a480c2909f593f93
|
|
| MD5 |
201cdb1d7c56d5062c0e287be37fc875
|
|
| BLAKE2b-256 |
9cded5ddbfd83a453b1db332b9cdbde5a6527b69ad4d9487fda69f57fb13f26c
|
File details
Details for the file auto_linter-1.6.3-py3-none-any.whl.
File metadata
- Download URL: auto_linter-1.6.3-py3-none-any.whl
- Upload date:
- Size: 98.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eed8e899482b3a7ba1d444120a57a3c513271a715c5cadd237715f2aef2f3621
|
|
| MD5 |
985da977709feff31f82f7f80951876f
|
|
| BLAKE2b-256 |
c487484e52618bf2e7f3c784f7e9f6c00dd1f9cd5754aeec4d4ceb8981b9d1b1
|