golangci-lint
Ranked 7 of 14 linters by recommenders
Developers recommend it as a comprehensive, one-stop Go linter that bundles many linters and runs locally. Critics note it is slow, even with a cache.
Developers recommend it as a comprehensive, one-stop Go linter that bundles many linters and runs locally. Critics note it is slow, even with a cache.
19 people gave an opinion
- recommend it
- 12
- criticize it
- 7
- approval share
- 63%
Recommended in 7 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: not recommended
- May 2026: not recommended
- June 2026: not recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: not recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 12 people recommend itNeeds 10 or more, met.
- 1.7 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 7 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
One-stop bundle of many linters
“I like the convenience of a one stop shop.”
Comment from 1 Dec 2025 in “Show HN: Identifiy test coverage gaps in your Go projects” “it's nice to be able to pick them all up in one fell swoop, but they're nothing like Coverity”
Comment from 2 Mar 2026 in “Go is the best language for agents” Comprehensive and widely used
“golangci-lint is quite comprehensive”
Comment from 26 Jul 2026 in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59” “Golang-ci exists for a while and everyone is using it.”
Comment from 26 Jul 2026 in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59”
What people warn about
Each mark is one comment
Slow, even with a cache
“it's okay but it's slow even with a cache”
Comment from 26 Jul 2026 in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59” “Takes nearly 5 minutes on our codebase after any change”
Comment from 11 Aug 2026 in “Why Go Is an Ideal Language for AI-Assisted Software Engineering” “It's like 100 times slower than ruff.”
Comment from 26 Jul 2026 in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59”
Other linters people recommend
The four most recommended other linters, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Ruff | 115 | 16 | 88% | 11 | — | Approved |
| Clippy (Rust linter) | 58 | 31 | 65% | 12 | — | — |
| ESLint | 32 | 22 | 59% | 11 | — | — |
| Biome | 23 | 5 | 82% | 10 | — | Approved |
| golangci-lintThis page | 12 | 7 | 63% | 7 | — | — |
What people said
All 25 comments that mention it, newest first. Each links to the original comment.
“I do think it's a useful way to resolve these sorts of issues without having to litigate the compiler itself”
“probably worth a golang-ci check for duplicate field names which are accessed by methods on the embedded type”
“I’ve been able to run golangci-lint locally just fine.”
“golangci-lint and gopls are both broken if you try using generic methods”
“integrated tools with go to improve and modernize go code”
“the author of the project just begs for money while only using linters written by other people”
“Takes nearly 5 minutes on our codebase after any change”
“that pretty much covers the problem in practice”
“It's like 100 times slower than ruff.”
“it's okay but it's slow even with a cache”
“Golang-ci exists for a while and everyone is using it.”
“I do hope golangci-lint and the likes pick it up”
“golangci-lint is good, but you have to glue together a bunch of linters, and it adds up”
“golangci-lint is quite comprehensive”
“as is go vet and golangci-lint to keep the generated code in line”
“golangci-lint is a painful codebase”
“golangci-lint can't be installed using the go toolchain”
“You either catch and enforce it with a linter (e.g. golangci-lint)”
“it's nice to be able to pick them all up in one fell swoop, but they're nothing like Coverity”
“golangci-lint for example doesn't accept a list of files like this”
“it is also not always advertised as well as you like”
“which is even better used as a component of golangci-lint”
“I like the convenience of a one stop shop.”
“You get such a massive safety boost and it makes you fly through writing Go.”
“Linters such as https://golangci-lint.run will do this for you.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.