
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.
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.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open-source | Free | Free 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
- 1

Cppcheck
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.4Free plan - 2
JSHint
Free planOpen sourceWebAPIExtensionLinux7.4Free plan - 3
Flake8
Free planOpen sourceAPILinuxmacOSSelf-hosted7.3Free plan - 4
PMD
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 5
SwiftLint
Free planLinuxmacOSWindows6.6Free plan - 6

Ruff
Free planWebLinuxmacOSSelf-hosted6.5Free plan
