{"categories":[{"label":"Quality Assurance","url":"https://skillfed.io/packages/category/software-development-quality-assurance"}],"enrichment":{"capability":"Lintrunner orchestrates and runs multiple linters across a codebase, deciding which files need linting, invoking linters via a common protocol, and aggregating their results.","skillfed_tags":["linting","ci-cd","polyglot"],"use_cases":["Enforce consistent code style across a monorepo with multiple languages using a single lintrunner command.","Integrate linting into CI/CD pipelines with selective linter runs (--take, --skip) to balance thoroughness and speed.","Adopt linting incrementally on an existing project by using --output oneline to navigate through lint messages.","Run linters only on changed files in a pull request using --merge-base-with to avoid re-linting the entire codebase.","Combine project-wide and local linter configs via multiple .lintrunner.toml files (e.g., lintrunner.toml and lintrunner.private.toml)."],"what_it_does":"Lintrunner is a polyglot linting orchestrator that runs multiple linters on a codebase with a unified configuration and output format. It determines which files need linting (by default, files changed in HEAD and the working tree), invokes each linter via a common protocol, and collects their results into a single report. The tool is designed for large projects with mixed languages and tooling\u2014you configure linters once in a .lintrunner.toml file, and lintrunner handles parallelization, path selection, and result aggregation.\n\nThe package has no runtime dependencies and ships as a compiled binary (Rust implementation) with wheels for macOS, Linux, Windows, and RISC-V. It expects each linter to be wrapped in an adapter that outputs JSON Lines to stdout and respects a {{PATHSFILE}} placeholder for the list of paths to check. Git integration is built in: by default it lints only changed files, but you can override this with --all-files, --revision, --merge-base-with, or by passing paths directly.","worth_installing":"Yes, if you manage a polyglot codebase and want unified linter orchestration. Lintrunner is actively maintained with no external runtime dependencies and ships as a compiled binary with broad platform support. The main gotcha is the unclear license\u2014verify it fits your project's constraints before committing. The learning curve is moderate: you must write linter adapters to implement the JSON Lines protocol, but the tool itself is straightforward to configure and use."},"id":"lintrunner","links":{"html":"https://skillfed.io/packages/lintrunner","md":"https://skillfed.io/packages/lintrunner.md","pypi":"https://pypi.org/project/lintrunner/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-08","license_spdx":null,"license_treatment":"unclear","name":"lintrunner","python_support":"supports_current","summary":null},"popularity":{"monthly_downloads":1510471,"position":3826,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.13.1"}
