EVERYTHING XIAOMI
Get listed
golangci-lint logo

golangci-lint

golangci-lint is a free, open-source runner for Go linters, with installations documented for Linux, macOS, and Windows and a Docker option.

Place
#21 of 33
Chart
Linters
Score
6.0
golangci-lint's website

What golangci-lint is

golangci-lint is a free, open-source runner for Go linters, with installations documented for Linux, macOS, and Windows and a Docker option. It runs linters in parallel, reuses the Go build cache and its own analysis cache, accepts YAML configuration, and includes more than a hundred linters. Results can be produced as text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, or SARIF. Documented editor integrations include GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text. For continuous integration, the project recommends its GitHub Action and documents integrations for GitLab CI and Buildkite. Its FAQ describes support for the two latest minor Go versions, with the further limit that a supported version cannot exceed the Go version used to compile golangci-lint. The project recommends pinning a version in CI for reproducible builds. It favors binary installation and notes that go install, go get, tools pattern, and tool command or directive installations are not guaranteed to work. Default settings are tuned to minimize false positives.

Good

  • Runs linters in parallel and uses caching.
  • Includes over a hundred linters.
  • Supports multiple output formats, including SARIF and JUnit-XML.
  • Documents integrations for editors and CI systems.

Watch out

  • Supports Go only.
  • Supported Go versions are limited by the compiler version used.
  • Several source-based installation methods are not guaranteed to work.

Who it suits

It suits Go developers who want to run multiple linters locally or in CI and configure analysis through YAML. Teams should check the supported Go-version limits and installation guidance.

Verdict

golangci-lint brings a broad set of Go checks into one configurable runner, with output options for editors and CI workflows. Follow its version and installation guidance when setting it up for a project.

Plans and prices

From golangci-lint's own pricing page, checked 30 Sep 2026.

All about pricing
PlanPriceWhat it gives you
Free and open-sourceFreeFree and open-source project built by volunteers

The facts

Each one read from golangci-lint's own pages, with the date it was checked.

What it does

CI
The project recommends its GitHub Action for GitHub CI and documents integrations for GitLab CI and Buildkite.checked 30 Sep 2026
CI versioning
The project recommends installing a specific golangci-lint version in CI to help keep builds reproducible.checked 30 Sep 2026
Configuration
Golangci-lint supports YAML configuration.checked 30 Sep 2026
Editors
The documentation lists integrations for GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text.checked 30 Sep 2026
False positives
The default settings are tuned to minimize false positives.checked 30 Sep 2026
Installation
The project documents binary and package manager installation on Linux, macOS, and Windows, as well as Docker installation.checked 30 Sep 2026
Outputs
It supports text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, and SARIF output formats.checked 30 Sep 2026
Performance
The project says it runs linters in parallel and reuses the Go build cache and its own analysis cache.checked 30 Sep 2026
Purpose
Golangci-lint is a fast linter runner for Go that runs linters in parallel, uses caching, supports YAML configuration, and includes over a hundred linters.checked 30 Sep 2026
Source installation
The project recommends binary installation and says go install, go get, tools pattern, and tool command or directive installations are not guaranteed to work.checked 30 Sep 2026
Support
The project is built by volunteers and accepts support through GitHub Sponsors, Open Collective, and Thanks.dev.checked 30 Sep 2026
Supported Go versions
The FAQ says it supports the two latest minor Go versions and versions no newer than the Go version used to compile golangci-lint.checked 30 Sep 2026

Alternatives to golangci-lint

All alternatives
  1. 1Cppcheck logo

    Cppcheck

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    JSHint

    Free planOpen sourceWebAPIExtensionLinux
    7.4Free plan
  3. 3

    Flake8

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.3Free plan
  4. 4

    PMD

    Free planLinuxmacOSSelf-hostedWindows
    6.8Free plan
  5. 5

    SwiftLint

    Free planLinuxmacOSWindows
    6.6Free plan
  6. 6Ruff logo

    Ruff

    Free planWebLinuxmacOSSelf-hosted
    6.5Free plan