golangci-lint

What golangci-lint is
golangci-lint is a free, open-source runner for Go linters. It runs linters in parallel, uses caching, accepts YAML configuration, and includes more than a hundred linters. Results can be produced in text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, and SARIF formats. The documentation lists integrations for 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. Installation instructions cover binaries and package managers on Linux, macOS, and Windows, as well as Docker. The FAQ says it supports the two latest minor Go versions, with the further limit that a supported version cannot be newer than the Go version used to compile golangci-lint. The project recommends installing a specific version in CI to help make builds reproducible. It favors binary installation and says several source-oriented installation methods are not guaranteed to work. Default settings are tuned to minimize false positives. The volunteer-built project accepts support through GitHub Sponsors, Open Collective, and Thanks.dev.
Who it suits
It suits Go developers who want to run multiple linters with configurable output and editor or CI integrations. Teams should check the stated Go version limits and installation guidance.
What it does well
- Runs more than a hundred linters in parallel.
- Uses Go build and analysis caches.
- Supports YAML configuration and multiple output formats.
- Documents editor and CI integrations.
- Free and open-source.
What to know first
- Supports only the two latest minor Go versions, subject to a compile-version limit.
- Several source-oriented installation methods are not guaranteed to work.
- Project is built by volunteers.
Limits
The FAQ limits support to the two latest minor Go versions, and a supported version cannot be newer than the Go version used to compile golangci-lint.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free and open-source | Free and open-source project built by volunteers | Free |
As golangci-lint.run lists them, read 30 Sept 2026. The maker's own page has the final word.
Getting started
- Open https://golangci-lint.run/.
- Choose a documented installation route for Linux, macOS, or Windows, or use Docker.
- Install the binary or package using the project documentation.
- Configure the runner with YAML if needed.
- Connect an editor integration or CI option if useful.
Verdict
golangci-lint brings parallel linting, configuration, and integrations to Go workflows at no listed cost. Check its Go version conditions and use the project’s recommended binary installation approach.
Questions
Is golangci-lint free?
Yes. It is a free and open-source project.
Which platforms can I use?
Platforms listed are Linux, macOS, self-hosted, and Windows. Docker installation is also documented.
Which editors are supported?
Documented integrations include GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text.
Which CI systems are documented?
The project recommends its GitHub Action and documents integrations for GitLab CI and Buildkite.
Which Go versions does it support?
The FAQ says it supports the two latest minor Go versions, subject to the limit that they cannot be newer than the Go version used to compile golangci-lint.
How can I support the project?
The volunteer-built project accepts support through GitHub Sponsors, Open Collective, and Thanks.dev.
Facts from golangci-lint's own pages
- CI
- The project recommends its GitHub Action for GitHub CI and documents integrations for GitLab CI and Buildkite. · golangci-lint.run, 30 Sept 2026
- CI versioning
- The project recommends installing a specific golangci-lint version in CI to help keep builds reproducible. · golangci-lint.run, 30 Sept 2026
- Configuration
- Golangci-lint supports YAML configuration. · golangci-lint.run, 30 Sept 2026
- Editors
- The documentation lists integrations for GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text. · golangci-lint.run, 30 Sept 2026
- False positives
- The default settings are tuned to minimize false positives. · golangci-lint.run, 30 Sept 2026
- Installation
- The project documents binary and package manager installation on Linux, macOS, and Windows, as well as Docker installation. · golangci-lint.run, 30 Sept 2026
- Outputs
- It supports text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, and SARIF output formats. · golangci-lint.run, 30 Sept 2026
- Performance
- The project says it runs linters in parallel and reuses the Go build cache and its own analysis cache. · golangci-lint.run, 30 Sept 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. · golangci-lint.run, 30 Sept 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. · golangci-lint.run, 30 Sept 2026
- Support
- The project is built by volunteers and accepts support through GitHub Sponsors, Open Collective, and Thanks.dev. · golangci-lint.run, 30 Sept 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. · golangci-lint.run, 30 Sept 2026
Where golangci-lint stands on Freedom251
- Linters#9 of 33
