CheckOps home

Tools directory

M

CheckOps

MegaLinter

MegaLinter is an AGPL-3.0 open-source linter orchestrator from OX Security that runs a large set of linters, formatters and security scanners across many languages in one Docker-based CI job.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

MegaLinter is an open-source tool that bundles a large set of linters, formatters and analysers into a single Docker image and runs the relevant ones on your repository. Its GitHub description says it analyses 50 languages, 22 formats and 21 tooling formats, and also checks for excessive copy-paste, spelling mistakes and security issues. OX Security sponsors the project.

The idea is to stop every team from wiring up its own collection of linters. On each pull request MegaLinter detects which file types changed and runs the matching linters, for example ESLint and Prettier for JavaScript, Ruff or Pylint for Python, ShellCheck for shell scripts, Hadolint for Dockerfiles, markdownlint for documentation, and security tools such as Gitleaks, Trivy or Checkov. The README frames a side benefit: developers learn best practices by reading the linter output for the languages they use.

It runs almost anywhere Docker runs. Official setup covers GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, Bitbucket Pipelines and other CI systems, and npx mega-linter-runner runs the same image locally. Configuration lives in a .mega-linter.yml file where you enable or disable linters, set per-linter arguments, and decide whether to validate the whole codebase or only changed files.

Because the full image is large, MegaLinter publishes flavours: smaller images tailored to a stack, such as Python, JavaScript, Java, Go, .NET, Terraform or documentation. You can also build custom flavours with exactly the linters you need, which keeps CI time and image pulls down.

MegaLinter can apply fixes as well as report problems. Formatters and linters with auto-fix can push a commit or open a pull request with the changes. Reporters write results as pull request comments, SARIF for code scanning, console logs, text files, JSON and other formats, and some integrations post summaries to chat tools.

In the quality loop, MegaLinter is a broad release gate for code hygiene and basic security. It is not a replacement for deep analysis platforms or full SAST suites, but it gives polyglot repositories one consistent, configurable lint step.

The source code is at oxsecurity/megalinter on GitHub under the AGPL-3.0 licence, with about 2,600 stars; the most recent commit was on 11 November 2026.

Features

  1. Many languages: Linters for dozens of languages, formats and tooling files in one image.
  2. Flavours: Smaller stack-specific images, plus custom flavours.
  3. Changed-files mode: Lint only what a pull request touches, or the whole repo.
  4. Auto-fix: Apply formatter and linter fixes via commit or pull request.
  5. Reporters: PR comments, SARIF, console, text, JSON and more.
  6. Security linters: Includes scanners such as Gitleaks, Trivy and Checkov.
  7. Copy-paste detection: Flags duplicated code blocks.
  8. Spelling checks: Catches typos in code and documentation.
  9. CI portability: GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, Bitbucket and others.
  10. Local runner: npx mega-linter-runner runs the same checks locally.

Pros

  1. One step for everything: Replaces many separately maintained lint jobs.
  2. Sensible defaults: Detects languages and enables matching linters automatically.
  3. Free to use: Open source under the AGPL-3.0 licence, so the core tool costs nothing to use.
  4. Actively maintained: The repository had commits as recent as 11 November 2026.

Cons

  1. Large images: The full image is heavy; flavours are needed for fast pipelines.
  2. Noise on first run: Enabling many linters on an old codebase produces many findings.
  3. AGPL licence: Fine for CI use, but some organisations review AGPL tools carefully.
  4. Shallow per-language depth: Dedicated tools or platforms may go deeper for a single language.

Add the GitHub Action:

# .github/workflows/mega-linter.yml
name: MegaLinter
on: [pull_request]
jobs:
  megalinter:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - uses: oxsecurity/megalinter/flavors/python@v10
        env:
          VALIDATE_ALL_CODEBASE: false
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Tune it in .mega-linter.yml:

DISABLE_LINTERS: [SPELL_CSPELL]
APPLY_FIXES: all
SHOW_ELAPSED_TIME: true

Run locally:

npx mega-linter-runner --flavor python

Practical tips:

  1. Start with VALIDATE_ALL_CODEBASE: false so only new changes are checked.
  2. Pick a flavour that matches your stack to cut image size.
  3. Disable linters you do not want rather than ignoring their output.

Resources:

Pricing

MegaLinter is free and open source under the AGPL-3.0 licence.

  1. Polyglot repositories that want one lint step across languages.
  2. Teams without a dedicated tooling owner who want good defaults.
  3. Open-source projects that need free, CI-agnostic linting.
  4. Not ideal where pipeline time is tight and only one language is used; a single fast linter may be better.

Conclusion

MegaLinter is the most comprehensive open-source linter bundle available. Language detection, flavours, auto-fix and many reporters make it a practical single gate for code hygiene across a whole repository.

Plan for the initial noise and image size: begin with changed-files mode and a stack flavour, then widen coverage once the team is comfortable.

On CheckOps, MegaLinter is filed under the Release & CI gates and Security testing stages. Related tools listed here include Super-Linter, Qlty, reviewdog, pre-commit, SonarQube and Semgrep. When comparing them, weigh the licence, the languages and platforms each supports, whether it is self-hosted or managed, and how cleanly it slots into your existing CI pipeline. Details on this page were checked against the official website, documentation and repository on 11 November 2026.

Compare

CheckOps pages that put MegaLinter next to related tools. There is no paid placement on these lists.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with MegaLinter side by side.