A comprehensive CLI tool that unifies various code formatting, linting, and quality assurance tools under a single command-line interface.
uv pip install lintro # Install (or: pip install lintro)
lintro check . # Find issues (alias: chk)
lintro format . # Fix issues (alias: fmt)
lintro check --output-format grid # Beautiful output- π― Unified Interface - One command for all your linting and formatting tools
- π Consistent Output - Beautiful, standardized output formats across all tools
- π§ Auto-fixing - Automatically fix issues where possible
- π³ Docker Ready - Run in isolated containers for consistent environments
- π Rich Reporting - Multiple formats: grid, JSON, HTML, CSV, Markdown
- β‘ Fast - Optimized parallel execution
Lintro respects your native tool configurations. If you have a .prettierrc,
pyproject.toml [tool.ruff], or .yamllint, Lintro uses them automatically - no
migration required.
- Native configs are detected - Your existing
.prettierrc,.oxlintrc.json, etc. work as-is - Enforce settings override consistently - Set
line_length: 88once, applied everywhere - Fallback defaults when needed - Tools without native configs use sensible defaults
See the Configuration Guide for details on the 4-tier config system.
| Tool | Language | Auto-fix | Install |
|---|---|---|---|
| Linters | |||
| βοΈ GitHub Actions | - | GitHub Releases | |
| π¦ Rust | β | rustup component add clippy |
|
| π³ Dockerfile | - | GitHub Releases | |
| π Markdown | - | bun add -g markdownlint-cli2npm install -g markdownlint-cli2 |
|
| π¨ JS/TS | β | bun add -g oxlintnpm install -g oxlint |
|
| π Python | - | π¦ | |
| π Shell Scripts | - | brew install shellcheckGitHub Releases |
|
| π§Ύ YAML | - | π¦ | |
| Formatters | |||
| π Python | β | π¦ | |
| π¨ JS/TS | β | bun add -g oxfmtnpm install -g oxfmt |
|
| π¨ JS/TS Β· π§Ύ JSON | β | bun add -g prettiernpm install -g prettier |
|
| π Shell Scripts | β | brew install shfmtGitHub Releases |
|
| π¦ Rust | β | rustup component add rustfmt |
|
| Lint + Format | |||
| π Python | β | π¦ | |
| ποΈ SQL | β | pipx install sqlfluff |
|
| π§Ύ TOML | β | brew install taploGitHub Releases |
|
| Type Checkers | |||
| π Astro | - | bun add astronpm install astro |
|
| π Python | - | π¦ | |
| π₯ Svelte | - | bun add -D svelte-checknpm install -D svelte-check |
|
| π¨ JS/TS | - | bun add -g typescriptnpm install -g typescriptbrew install typescript |
|
| π Vue | - | bun add -D vue-tscnpm install -D vue-tsc |
|
| Security | |||
| π Python | - | π¦ | |
| π Secret Detection | - | brew install gitleaksGitHub Releases |
|
| π¦ Rust | - | cargo install cargo-audit |
|
| π¦ Rust | - | cargo install cargo-deny |
|
| π Multi-ecosystem | - | GitHub Releases | |
| π Multi-language | - | pipx install semgreppip install semgrepbrew install semgrep |
|
π¦ = bundled with lintro β no separate install needed
β‘ Node.js tools support--auto-installto install dependencies automatically
Lintro includes optional AI-powered features that provide actionable summaries and interactive fix suggestions. AI features are BYO (Bring Your Own) API key β not enabled by default.
- Providers: Anthropic Claude, OpenAI GPT
- AI Summary β high-level assessment with pattern analysis (1 API call per run)
- Interactive Fix Suggestions β AI-generated code diffs with risk classification
- Post-fix Summary β contextualizes what was fixed and what remains
# Install with AI support
uv pip install 'lintro[ai]'
export ANTHROPIC_API_KEY=sk-ant-... # or OPENAI_API_KEY
# Enable in config
# .lintro-config.yaml
# ai:
# enabled: true
# provider: anthropicSee the AI Features Guide for full documentation.
Python 3.11+ is required. Check tool versions with lintro list-tools.
# Lightweight (CLI only β detects tools on PATH)
uv pip install lintro
brew tap lgtm-hq/tap && brew install lintro
# Full (bundled Python tools: ruff, black, mypy, bandit, pydoclint, yamllint)
uv pip install 'lintro[full]'
brew tap lgtm-hq/tap && brew install lintro-full
# Docker (all tools)
docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check
# Docker (CLI only)
docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro-base:latest check
# First run after lightweight install
lintro init
lintro doctor
lintro install --profile recommendedSee Getting Started for detailed installation options.
# Check all files (alias: chk)
lintro check .
# Auto-fix issues (alias: fmt)
lintro format .
# Grid output with grouping
lintro check --output-format grid --group-by file
# Run specific tools
lintro check --tools ruff,prettier,mypy
# Auto-install Node.js dependencies
lintro check --tools tsc --auto-install
# Exclude directories
lintro check --exclude "node_modules,dist,venv"
# List available tools
lintro list-tools# Run from GHCR (tools image - recommended)
docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check
# With formatting
docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check --output-format grid
# Base image (minimal, no external tools; separate GHCR package)
docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro-base:latest check| Guide | Description |
|---|---|
| Getting Started | Installation, first steps, requirements |
| Configuration | Tool configuration, options, presets |
| AI Features | AI summaries, fix suggestions, config |
| Docker Usage | Containerized development |
| GitHub Integration | CI/CD setup, workflows |
| Contributing | Development guide, adding tools |
| Troubleshooting | Common issues and solutions |
Advanced: Tool Analysis Β· Architecture Β· Security
# Clone and install
git clone https://github.com/lgtm-hq/py-lintro.git
cd py-lintro
uv sync --dev
# Run tests
./scripts/local/run-tests.sh
# Run lintro on itself
./scripts/local/local-lintro.sh check --output-format grid- π Bug Reports
- π‘ Feature Requests
- β Questions
- π Contributing Guide
MIT License - see LICENSE for details.