Skip to content
SPECIFICTION
Get listed

golangci-lint

golangci-lint.run

Free plan WindowsmacOSLinuxSelf-hosted
Visit golangci-lint.run
Spec score 7.8 #17 of 33 in Linters

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

Free and open-source Free Free and open-source project built by volunteers Read 30 Sep 2026 · golangci-lint.run

Every golangci-lint plan and price →

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

Alternatives to golangci-lintAll alternatives →