megalinter
Set up, run and fix MegaLinter on any repository: 100+ linters for 69+ languages, 23+ formats and 21+ tooling formats, from CI or locally.
Open source Open in the app JSON README (API)
About
Set up, run and fix MegaLinter on any repository: 100+ linters for 69+ languages, 23+ formats and 21+ tooling formats, from CI or locally.
Details
- Kind
- Plugins
- Topic
- No topic detected
- Publisher
- oxsecurity
- Origin
- gemini
- Category
- ferramentas
- Version
- 1.0.6
- Stars
- 2,577
- Forks
- 310
- Open pull requests
- 15
- Last push
- 2026-09-05T06:20:20Z
- Repository state
- ativo
- Language
- Dockerfile
- License
- AGPL-3.0
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-09-05 23:00:32
- Origin id
oxsecurity/megalinter
README
<!-- markdownlint-disable MD013 MD033 MD041 -->
<!-- header-intro-start -->
<!-- header-intro-end -->
<!-- header-logo-start -->
<div align="center">
<a href="https://megalinter.io" target="blank" title="Visit MegaLinter Web Site">
<img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/megalinter-banner.png" alt="MegaLinter" min-height="200px">
</a>
</div>
<!-- header-logo-end -->
<!-- mega-linter-title-start -->
# MegaLinter, by [](https://www.ox.security/?ref=megalinter)
<!-- mega-linter-title-end -->
<!-- mega-linter-badges-start -->

[](https://megalinter.io/flavors/)
[](https://npmjs.org/package/mega-linter-runner)
[](https://megalinter.io/latest/coding-agents/)
[](https://github.com/oxsecurity/megalinter/stargazers/)
[](https://github.com/oxsecurity/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain)
[](https://codecov.io/gh/oxsecurity/megalinter)
<!-- gh-dependents-info-used-by-start -->
[](https://github.com/oxsecurity/megalinter/blob/main/./docs/used-by-stats.md)<!-- gh-dependents-info-used-by-end -->
[](https://github.com/aquasecurity/trivy)
[](https://github.com/oxsecurity/megalinter/graphs/contributors/)
[](https://github.com/sponsors/nvuillam)
[](https://github.com/oxsecurity/megalinter/blob/main/.github/CONTRIBUTING.md)
[](https://twitter.com/intent/tweet?text=Check+MegaLinter+to+say+goodbye+to+dirty+code+in+your+projects+%3A%29+100%25+free+and+open+source+for+all+uses&url=https://megalinter.io/&via=NicolasVuillamy&hashtags=linters,code,quality,ci,python,java,golang,c,dotnet,kotlin,rust,scala,salesforce,terraform)
<!-- mega-linter-badges-end -->
<!-- welcome-phrase-start -->
MegaLinter is an **open-source** tool for **CI/CD workflows** that analyzes the **consistency of your code**, **IaC**, **configuration**, and **scripts** in your repository to **ensure all your project sources are clean and formatted**, no matter which IDE or toolbox is used by your developers. Powered by [**OX Security**](https://www.ox.security/?ref=megalinter).
Supports [**66** languages](#languages), [**24** formats](#formats), [**22** tooling formats](#tooling-formats), and is **ready to use out of the box** as a GitHub Action or with any CI system. It is **highly configurable** and **free for all uses**.
MegaLinter has **native integrations** with popular CI/CD tools and is compliant with most [**Coding Agents**](https://megalinter.io/latest/coding-agents/).
<div align="center">
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitHubCommentReporter.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/github.png?raw=true" alt="GitHub" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitlabCommentReporter.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/gitlab.png?raw=true" alt="GitLab" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/AzureCommentReporter.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/azure.png?raw=true" alt="Azure" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/BitbucketCommentReporter.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/bitbucket.png?raw=true" alt="Bitbucket" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/install-jenkins.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/jenkins.png?raw=true" alt="Jenkins" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/install-drone.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/drone.png?raw=true" alt="Drone" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/install-concourse.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/concourse.png?raw=true" alt="Concourse" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/install-docker.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/docker.png?raw=true" alt="Docker" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/SarifReporter.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/sarif.png?raw=true" alt="SARIF" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/observability/grafana.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/grafana.png?raw=true" alt="Grafana" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/observability/datadog.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/datadog.png?raw=true" alt="Datadog" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/observability/newrelic.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/newrelic.png?raw=true" alt="New Relic" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/observability/elastic.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/elastic.png?raw=true" alt="Elastic" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
</div>
<div align="center">
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/claude.png?raw=true" alt="Claude Code" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cursor.png?raw=true" alt="Cursor" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/github-copilot.png?raw=true" alt="GitHub Copilot CLI" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/codex.png?raw=true" alt="Codex" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/antigravity.png?raw=true" alt="Antigravity" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/opencode.png?raw=true" alt="OpenCode" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/gemini-cli.png?raw=true" alt="Gemini CLI" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/windsurf.png?raw=true" alt="Windsurf" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cline.png?raw=true" alt="Cline" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/roo-code.png?raw=true" alt="Roo Code" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/kilo-code.png?raw=true" alt="Kilo Code" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/amp.png?raw=true" alt="Amp" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/goose.png?raw=true" alt="Goose" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/openhands.png?raw=true" alt="OpenHands" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
<a href="https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md"><img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/qwen-code.png?raw=true" alt="Qwen Code" height="40" style="height:40px;vertical-align:middle;margin:4px"></a>
</div>
<!-- welcome-phrase-end -->

- Use the new [LLM Advisor](https://megalinter.io/latest/llm-advisor/) that will tell you how to fix linters issues
- Create your own [MegaLinter Custom Flavors](https://megalinter.io/latest/custom-flavors/) to improve performance
<!-- online-doc-start -->
Before you go further, see the [**online documentation website, which offers much easier navigation than this README**](https://megalinter.io/)
<!-- online-doc-end -->
<!-- table-of-contents-start -->
## Table of Contents
- [Why MegaLinter](#why-megalinter)
- [Quick Start](#quick-start)
- [Coding Agents](#coding-agents)
- [Supported Linters](#supported-linters)
- [Languages](#languages)
- [Formats](#formats)
- [Tooling formats](#tooling-formats)
- [Other](#other)
- [Installation](#installation)
- [Coding agents (skills)](#coding-agents-skills)
- [Coding Agents (Plugins)](#coding-agents-plugins)
- [Assisted installation](#assisted-installation)
- [Which version to use ?](#which-version-to-use-)
- [GitHub Action](#github-action)
- [GitLab CI](#gitlab-ci)
- [Azure Pipelines](#azure-pipelines)
- [Single Repository](#single-repository)
- [Central Repository](#central-repository)
- [Pull Request Comments](#pull-request-comments)
- [Detailed Tutorial](#detailed-tutorial)
- [Bitbucket Pipelines](#bitbucket-pipelines)
- [Jenkins](#jenkins)
- [Concourse](#concourse)
- [Pipeline step](#pipeline-step)
- [Use it as a reusable task](#use-it-as-a-reusable-task)
- [Drone CI](#drone-ci)
- [(Optional) Adjusting trigger rules](#optional-adjusting-trigger-rules)
- [Docker container](#docker-container)
- [Run MegaLinter locally](#run-megalinter-locally)
- [Configuration](#configuration)
- [.mega-linter.yml file](#mega-linteryml-file)
- [Common variables](#common-variables)
- [Activation and deactivation](#activation-and-deactivation)
- [Filter linted files](#filter-linted-files)
- [Apply fixes](#apply-fixes)
- [Apply fixes issues](#apply-fixes-issues)
- [Notes](#notes)
- [Linter specific variables](#linter-specific-variables)
- [Pre-commands](#pre-commands)
- [Post-commands](#post-commands)
- [Environment variables security](#environment-variables-security)
- [Secured env variables](#secured-env-variables)
- [Secured configuration examples](#secured-configuration-examples)
- [Default secured variables](#default-secured-variables)
- [Unhide variables for linters](#unhide-variables-for-linters)
- [CLI lint mode](#cli-lint-mode)
- [Reporters](#reporters)
- [Flavors](#flavors)
- [Badge](#badge)
- [Markdown](#markdown)
- [reStructuredText](#restructuredtext)
- [Plugins](#plugins)
- [External Plugins Catalog](#external-plugins-catalog)
- [Use external plugins](#use-external-plugins)
- [Example](#example)
- [Create your own plugin](#create-your-own-plugin)
- [Limitations](#limitations)
- [They talk about MegaLinter](#they-talk-about-megalinter)
- [English articles](#english-articles)
- [French articles](#french-articles)
- [Videos](#videos)
- [Web Sites](#web-sites)
- [Linters](#linters)
- [Frequently Asked Questions](#frequently-asked-questions)
- [How to contribute](#how-to-contribute)
- [Special thanks](#special-thanks)
- [Maintainers](#maintainers)
- [Contributors](#contributors)
- [Open-source teams](#open-source-teams)
- [Super-Linter team](#super-linter-team)
- [License](#license)
- [MegaLinter vs Super-Linter](#megalinter-vs-super-linter)
- [Security](#security)
- [Performance](#performance)
- [More languages and formats linted](#more-languages-and-formats-linted)
- [Automatically apply formatting and fixes](#automatically-apply-formatting-and-fixes)
- [Run locally](#run-locally)
- [Reports](#reports)
- [Capabilities](#capabilities)
- [Additional Reporters](#additional-reporters)
- [Enhanced configuration](#enhanced-configuration)
- [Enhanced documentation](#enhanced-documentation)
- [Plugin management](#plugin-management)
- [Simplify architecture and evolutionary maintenance](#simplify-architecture-and-evolutionary-maintenance)
- [Improve robustness \& stability](#improve-robustness--stability)
<!-- table-of-contents-end -->
## Why MegaLinter
Projects need to contain clean code in order to **avoid technical debt**, which makes **ongoing maintenance harder and more time-consuming**.
By using [**code formatters and code linters**](#supported-linters), you ensure that your **codebase is easier to read** and **follows best practices**, from kickoff through each step of the project lifecycle.
Not all developers use linters in their IDEs, which makes code reviews harder and longer to process.
By using **MegaLinter**, you'll enjoy the following benefits for your team:
- At **each pull request**, it **automatically analyzes all updated code across all languages**.
- By reading error logs, **developers learn best practices** for the languages they use.
- The [**MegaLinter documentation**](https://megalinter.io/) provides a **list of IDE plugins for each linter**, so developers know which linter and plugins to install.
- MegaLinter **works out of the box** after a [**quick setup**](#quick-start).
- **Formatting and fixes** can be automatically [**applied directly to the Git branch**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md) or [**provided in reports**](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md).
- This tool is **100% open source** and **free for all uses** (personal, professional, public, and private repositories).
- MegaLinter can run on [**any CI tool**](https://github.com/oxsecurity/megalinter/tree/main/docs/install-assisted.md) and be [**run locally**](https://megalinter.io/mega-linter-runner/): **no need to authorize an external application**, and **your codebase never leaves your tooling ecosystem**.
Join a **continuously growing community**: MegaLinter Docker images are pulled **hundreds of thousands of times every month**.
[](https://megalinter.io/latest/flavors-stats/)
<!-- quick-start-section-start -->
<!-- markdown-headers
---
title: Quick Start with MegaLinter
description: Setup MegaLinter in 5 minutes thanks to its assisted installation tool
---
-->
## Quick Start
- **With a coding agent**: install the [MegaLinter agent skills](https://megalinter.io/latest/install-agent-skills/) with `npx skills add oxsecurity/megalinter/skills`, then ask your agent to _"setup megalinter"_.
- **Or with the interactive wizard**: run `npx mega-linter-runner --install` to generate configuration files (you need [Node.js](https://nodejs.org/en/) installed).
- Commit, push, and create a pull request.
- Watch!

**Notes**:
<!-- # MAJOR-RELEASE-IMPACTED -->
- This repo is a hard fork of [GitHub Super-Linter](https://github.com/super-linter/super-linter), rewritten in Python to add [many additional features](#mega-linter-vs-super-linter).
- If you are a Super-Linter user, you can transparently **switch to MegaLinter and keep the same configuration** (just replace `super-linter/super-linter@v3` with `oxsecurity/megalinter@v10` in your GitHub Action YAML file, [like on this PR](https://github.com/nvuillam/npm-groovy-lint/pull/109)).
- If you want to use MegaLinter's extra features (recommended), please take 5 minutes to use the [assisted installation](https://github.com/oxsecurity/megalinter/tree/main/docs/install-assisted.md).
- For a beginner-friendly example of getting started with MegaLinter, check out [this blog post](https://ayyjohn.com/posts/linting-a-jekyll-blog-with-mega-linter) by Alec Johnson.
<!-- quick-start-section-end -->
<!-- coding-agents-section-start -->
<!-- markdown-headers
---
title: Use MegaLinter with coding agents
description: Setup, run and fix MegaLinter errors from Claude Code, Cursor, GitHub Copilot CLI, Codex, Gemini CLI, Antigravity, OpenCode and other coding agents, with token-efficient sub-agents orchestration
---
-->
## Coding Agents
MegaLinter is designed to work hand in hand with your coding agent:
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/claude.png?raw=true" alt="Claude Code" height="40" style="height:40px">](https://claude.com/product/claude-code)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cursor.png?raw=true" alt="Cursor" height="40" style="height:40px">](https://cursor.com)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/github-copilot.png?raw=true" alt="GitHub Copilot CLI" height="40" style="height:40px">](https://github.com/features/copilot)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/codex.png?raw=true" alt="Codex" height="40" style="height:40px">](https://openai.com/codex/)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/antigravity.png?raw=true" alt="Antigravity" height="40" style="height:40px">](https://antigravity.google/)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/opencode.png?raw=true" alt="OpenCode" height="40" style="height:40px">](https://opencode.ai)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/gemini-cli.png?raw=true" alt="Gemini CLI" height="40" style="height:40px">](https://github.com/google-gemini/gemini-cli)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/windsurf.png?raw=true" alt="Windsurf" height="40" style="height:40px">](https://windsurf.com)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cline.png?raw=true" alt="Cline" height="40" style="height:40px">](https://cline.bot)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/roo-code.png?raw=true" alt="Roo Code" height="40" style="height:40px">](https://roocode.com)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/kilo-code.png?raw=true" alt="Kilo Code" height="40" style="height:40px">](https://kilocode.ai)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/amp.png?raw=true" alt="Amp" height="40" style="height:40px">](https://ampcode.com)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/goose.png?raw=true" alt="Goose" height="40" style="height:40px">](https://block.github.io/goose/)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/openhands.png?raw=true" alt="OpenHands" height="40" style="height:40px">](https://www.all-hands.dev)
[<img src="https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/qwen-code.png?raw=true" alt="Qwen Code" height="40" style="height:40px">](https://github.com/QwenLM/qwen-code)
### Get started
Install the [MegaLinter agent skills](https://github.com/oxsecurity/megalinter/tree/main/skills) at the root of your repository:
With **Claude Code** (the skills are copied directly into `.claude/skills/`):
```bash
npx skills add oxsecurity/megalinter/skills -s '*' -a claude-code -y
```
With **another coding agent**, replace `claude-code` with your agent's identifier (`cursor`, `github-copilot`, `codex`, `antigravity`, `opencode`... full list in the [skills CLI documentation](https://github.com/vercel-labs/skills#supported-agents)) — or let the CLI **detect your installed agents** and install the skills for all of them at once:
```bash
npx skills add oxsecurity/megalinter/skills -s '*' -y --copy
```
Then just talk to your agent:
- _"Setup MegaLinter on this repo"_
- _"Run MegaLinter and fix the errors"_
- _"Why is the MegaLinter CI job failing? Fix it"_
### What the skills do
| Skill | Role |
|:---------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **megalinter** | Entry point: detects the repository state and orchestrates the other skills in a check → fix → re-check loop (3 iterations max) |
| **megalinter-setup** | Installs or upgrades MegaLinter using `npx mega-linter-runner --install` (non-interactive), then refines `.mega-linter.yml` |
| **megalinter-check** | Collects errors: watches a MegaLinter CI job (GitHub Actions, GitLab CI, Azure Pipelines, Bitbucket Pipelines) or runs MegaLinter locally with docker/podman |
| **megalinter-fix** | Fixes errors guided by a per-linter fix guide (one for each of the 124 linters, loaded only when its linter has errors), asks you before disabling rules or pushing |
### Sub-agents orchestration
On agents supporting sub-agents (Claude Code, OpenCode, GitHub Copilot custom agents...), `megalinter-setup` installs three sub-agents that keep large CI logs and linter outputs **out of your main agent's context**, and run on low-cost models when possible:
```mermaid
flowchart TD
U(["👤 You: <i>run megalinter and fix the errors</i>"]) --> O["🎯 megalinter<br/>(orchestrator skill)"]
O -->|"no config found"| S["🛠️ megalinter-setup"]
S -->|"npx mega-linter-runner --install"| CFG[/".mega-linter.yml<br/>+ CI workflow"/]
O --> C["🔍 megalinter-check"]
C -->|"watch mode"| W[["👀 megalinter-watcher<br/>sub-agent, low-cost model"]]
W --> CI[/"CI job logs<br/>GitHub / GitLab / Azure / Bitbucket"/]
C -->|"local mode"| RUN[["🐳 megalinter-runner<br/>sub-agent, low-cost model"]]
RUN --> IMG[/"MegaLinter Docker image<br/>docker or podman"/]
W --> ERR[/"📋 Compact error list<br/>grouped by linter"/]
RUN --> ERR
ERR --> F["🔧 megalinter-fix"]
F -->|"one sub-agent per failing linter,<br/>in parallel"| FX1[["🤖 megalinter-fixer<br/>+ python_ruff fix guide"]]
F --> FX2[["🤖 megalinter-fixer<br/>+ markdown_markdownlint fix guide"]]
FX1 --> RES[/"✏️ Fixed files<br/>+ proposed rule disables"/]
FX2 --> RES
RES -->|"you confirm disables"| RC["♻️ Targeted re-check<br/>parallel standalone linter images"]
RC -->|"errors remain (max 3 loops)"| F
RC -->|"clean"| DONE(["✅ Commit on a branch<br/>(never on main)"])
classDef user fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1b5e20
classDef skill fill:#ede7f6,stroke:#5e35b1,stroke-width:2px,color:#311b92
classDef subagent fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#0d47a1
classDef artifact fill:#fff8e1,stroke:#f9a825,stroke-width:1px,color:#5d4037
classDef recheck fill:#e0f2f1,stroke:#00897b,stroke-width:2px,color:#004d40
class U,DONE user
class O,S,C,F skill
class W,RUN,FX1,FX2 subagent
class CFG,CI,IMG,ERR,RES artifact
class RC recheck
```
The fix guides combine information generated from the [linter descriptors](https://github.com/oxsecurity/megalinter/tree/main/megalinter/descriptors) (auto-fix support, rules documentation URLs, MegaLinter tuning variables) with curated fix, inline-disable and ignore instructions grounded in each linter's official documentation.
### Safety rules
- Safe fixes are applied automatically; ambiguous ones are asked to you
- Disabling a linter or a rule always requires your confirmation
- Commits are never pushed to the default branch
See also the [installation page for coding agents](https://megalinter.io/latest/install-agent-skills/), or install everything at once as an [agent plugin](https://megalinter.io/latest/agent-plugins/).
<!-- coding-agents-section-end -->
<!-- supported-linters-section-start -->
<!-- markdown-headers
---
title: List of the 100+ supported linters embedded in MegaLinter
description: Full list of all linters for all languages and formats that are available in MegaLinter
---
-->
## Supported Linters
All linters are integrated into the [MegaLinter Docker image](https://hub.docker.com/r/oxsecurity/megalinter), which is frequently updated with their latest versions.
<!-- languages-section-start-->
<!-- linters-table-start -->
### Languages
| <!-- --> | Language | Linter | Additional |
|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**bash-exec**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md)<br/>[_BASH_EXEC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md) | |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**shellcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md)<br/>[_BASH_SHELLCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md) | [](https://github.com/koalaman/shellcheck)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**shfmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md)<br/>[_BASH_SHFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md) | [](https://github.com/mvdan/sh)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**cppcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md)<br/>[_C_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md) |  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**cpplint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md)<br/>[_C_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md) | [](https://github.com/cpplint/cpplint) |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**clang-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md)<br/>[_C_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md) | [](https://github.com/llvm/llvm-project)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/clojure.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md) | [**clj-kondo**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md)<br/>[_CLOJURE_CLJ_KONDO_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md) | [](https://github.com/borkdude/clj-kondo)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/clojure.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md) | [**cljstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md)<br/>[_CLOJURE_CLJSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md) | [](https://github.com/greglook/cljstyle)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/coffee.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**COFFEE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee.md) | <s>[**coffeelint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md)<br/>[_COFFEE_COFFEELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md)</s> | <span title="Disabled: CoffeeScript tooling is discontinued, and coffeelint can not honor EXCLUDED_DIRECTORIES (it has no exclusion option and only reads .coffeelintignore from its working directory). The linter will be removed in a future version">🚫</span> [](https://github.com/clutchski/coffeelint) |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**cppcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md)<br/>[_CPP_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md) |  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**cpplint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md)<br/>[_CPP_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md) | [](https://github.com/cpplint/cpplint) |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**clang-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md)<br/>[_CPP_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md) | [](https://github.com/llvm/llvm-project)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md)<br/>[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md) | [](https://github.com/dotnet/sdk)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**csharpier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md)<br/>[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md) | [](https://github.com/belav/csharpier)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**roslynator**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md)<br/>[_CSHARP_ROSLYNATOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md) | [](https://github.com/dotnet/Roslynator)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/dart.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md) | [**dartanalyzer**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md)<br/>[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md) | [](https://github.com/dart-lang/sdk) |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/go.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)<br/>[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [](https://github.com/golangci/golangci-lint)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/go.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**revive**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md)<br/>[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md) | [](https://github.com/mgechev/revive)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/groovy.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md) | [**npm-groovy-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md)<br/>[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md) | [](https://github.com/nvuillam/npm-groovy-lint)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/java.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**checkstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md)<br/>[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md) | [](https://github.com/checkstyle/checkstyle)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/java.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**pmd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md)<br/>[_JAVA_PMD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md) | [](https://github.com/pmd/pmd)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md)<br/>[_JAVASCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md) | [](https://github.com/eslint/eslint)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md)<br/>[_JAVASCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md) | [](https://github.com/standard/standard)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md)<br/>[_JAVASCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md) | [](https://github.com/prettier/prettier)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**biome**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_biome.md)<br/>[_JAVASCRIPT_BIOME_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_biome.md) | [](https://github.com/biomejs/biome)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/jsx.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md)<br/>[_JSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md) | [](https://github.com/Rel1cx/eslint-react)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/jsx.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md) | [**biome**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_biome.md)<br/>[_JSX_BIOME_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_biome.md) | [](https://github.com/biomejs/biome)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/kotlin.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md) | [**ktlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md)<br/>[_KOTLIN_KTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md) | [](https://github.com/pinterest/ktlint)   |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/kotlin.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md) | [**detekt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md)<br/>[_KOTLIN_DETEKT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md) | [](https://github.com/detekt/detekt)  |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/lua.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md) | [**luacheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md)<br/>[_LUA_LUACHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md) | [](https://github.com/lunarmodules/luacheck) |
| <img src="https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/lua.ico" alt="" height="32px" class="megalinter-icon"></a> <!-- linter-icon --> | [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md) | [**stylua**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md)<br/>[_LUA_STYLUA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md) | [](https://github.com/JohnnyMorganz/StyLua)