golangci-lint
golangci-lint.run
What it is
golangci-lint is a Go linter runner that executes linters in parallel, reuses caches, and accepts YAML configuration. It includes more than a hundred linters, with default settings tuned to minimize false positives. Results can be emitted in text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, and SARIF formats. Documented editor integrations include GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text. The project recommends its GitHub Action for GitHub CI and also documents GitLab CI and Buildkite integrations. Installation options include binaries and package managers on Linux, macOS, and Windows, plus Docker. The FAQ says it supports the two latest minor Go versions, subject to the limit that the version cannot be newer than the Go version used to compile the tool. The project recommends installing a specific version in CI for reproducible builds. It recommends binary installation; several source-based methods are not guaranteed to work. The volunteer-built project is free and open source.
Spec sheet
- 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.Read 30 Sep 2026 · golangci-lint.run
- Support
- The project is built by volunteers and accepts support through GitHub Sponsors, Open Collective, and Thanks.dev.Read 30 Sep 2026 · golangci-lint.run
- CI
- The project recommends its GitHub Action for GitHub CI and documents integrations for GitLab CI and Buildkite.Read 30 Sep 2026 · golangci-lint.run
- CI versioning
- The project recommends installing a specific golangci-lint version in CI to help keep builds reproducible.Read 30 Sep 2026 · golangci-lint.run
- Configuration
- Golangci-lint supports YAML configuration.Read 30 Sep 2026 · golangci-lint.run
- Editors
- The documentation lists integrations for GoLand, Visual Studio Code, GNU Emacs, Vim, the Language Server Protocol, and Sublime Text.Read 30 Sep 2026 · golangci-lint.run
- False positives
- The default settings are tuned to minimize false positives.Read 30 Sep 2026 · golangci-lint.run
- Installation
- The project documents binary and package manager installation on Linux, macOS, and Windows, as well as Docker installation.Read 30 Sep 2026 · golangci-lint.run
- Outputs
- It supports text, JSON, tab, HTML, Checkstyle, Code Climate, JUnit-XML, TeamCity, and SARIF output formats.Read 30 Sep 2026 · golangci-lint.run
- Performance
- The project says it runs linters in parallel and reuses the Go build cache and its own analysis cache.Read 30 Sep 2026 · golangci-lint.run
- 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.Read 30 Sep 2026 · golangci-lint.run
- 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.Read 30 Sep 2026 · golangci-lint.run
Plans and prices
Strong points and limits
Strong points
- Includes over a hundred linters.
- Runs linters in parallel and reuses caches.
- Supports YAML configuration and multiple output formats.
- Documents editor and CI integrations.
- Free and open source.
Limits
- Supports only the two latest minor Go versions.
- Supported Go versions cannot exceed its compile-time Go version.
- Several source-based installation methods are not guaranteed to work.
Who it suits
It suits Go developers who want configurable linting across editors and CI systems. Teams should check the stated Go-version limits and prefer the documented binary installation approach.
Verdict
golangci-lint combines a large linter set with parallel execution, caching, and integrations for common editors and CI systems. Check its Go-version requirements and installation guidance before adopting it.
Where Specifiction places it
- Linters#17 of 337.8