A fast, configurable Go linter that drops in for golint and supports custom rules and output formatters.
golangci/golangci-lint
A fast Go linters runner that executes many linters in parallel with caching and YAML configuration.
- Stars
- 19,505
- Forks
- 1,639
- Open issues
- 117
- Last commit
- yesterday
What is it?
golangci-lint is a runner for Go linters. Instead of running each linter separately, it executes many of them in parallel, caches results, and reads its settings from a YAML configuration file, so a whole project can be checked with one command.
The tool bundles over a hundred linters and integrates with major IDEs, letting developers see issues while editing. It is also designed to run in CI/CD pipelines, where it can be installed on build systems and used to gate code quality.
Key features
- 01Runs many Go linters in parallel with one command.
- 02Caches results to speed up repeated runs.
- 03Configurable through a YAML file.
- 04Integrates with all major IDEs.
- 05Includes over a hundred built-in linters.
Use cases
- Enforcing code quality checks in a Go project's CI pipeline.
- Catching common bugs and style issues while editing Go code in an IDE.
- Standardizing lint rules across a team's Go repositories.
Quick start
- 1
Open the install guide for your machine (linked in the README)
Things to know
- Licensed under GPL-3.0, a copyleft license that may restrict how you can use it in proprietary code.
In collections
Topics
FAQ
- What is golangci-lint?
- A fast Go linters runner that executes many linters in parallel with caching and YAML configuration. golangci-lint is a runner for Go linters. Instead of running each linter separately, it executes many of them in parallel, caches results, and reads its settings from a YAML configuration file, so a whole project can be checked with one command.
- Is golangci-lint free to use? What license does it have?
- golangci-lint is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is golangci-lint still maintained?
- Actively maintained. The last commit to golangci-lint was on Nov 5, 2026.
- What can I use golangci-lint for?
- Enforcing code quality checks in a Go project's CI pipeline. Catching common bugs and style issues while editing Go code in an IDE. Standardizing lint rules across a team's Go repositories.
- How do I install golangci-lint?
- Open the install guide for your machine (linked in the README)
- Where can I get golangci-lint?
- The source code and installation instructions are on GitHub: https://github.com/golangci/golangci-lint
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A ready-to-run collection of linters and formatters that runs as a GitHub Action or standalone container to check and fix source code.
A Go CLI that runs any linter or code analysis tool and posts its findings as review comments on GitHub, GitLab or Bitbucket, limited to changed lines.
A static analysis tool for PHP that finds bugs in code without running it.
A pluggable linter for ECMAScript/JavaScript that finds problematic patterns in code and can automatically fix many of them.
A linter that enforces Swift style and conventions, with over 200 rules that can be configured per project.