SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Go Linter Projects
-
Not only are we going to build a linter, but also we will integrate it (as a module plugin) in golangci-lint.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
reviewdog
🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
github.com - reviewdog/reviewdog
-
Sign and scan artifacts before deployment. Container image scanning with Trivy, Snyk, or Grype identifies known vulnerabilities in base images and dependencies. Fail the pipeline if critical or high-severity vulnerabilities are detected.
-
Project mention: 2026 Benchmark: Gemini 2.5 vs. OpenAI o4 for Translating Code Between Python 3.13 and Go 1.24 | dev.to | 2026-04-28
Go’s static analysis ecosystem is mature enough to catch 80% of translation errors before runtime. staticcheck (https://github.com/dominikh/go-tools) is a state-of-the-art linter that detects unused variables, race conditions, and incorrect error handling—common issues in LLM-translated Go code. In our benchmark, teams that integrated staticcheck into their CI pipeline reduced post-translation bugs by 72%. For example, running staticcheck ./... after translation will catch issues like unhandled errors or shadowed variables that Gemini 2.5 occasionally misses. Similarly, go vet detects suspicious constructs, such as fmt.Printf calls with incorrect format verbs. A sample CI step looks like:
-
revive
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
> Our coding standards require that functions have a fairly low cyclomatic complexity. The goal is to ensure that we never have a a function which is really hard to understand.
https://github.com/fzipp/gocyclo
> * We also require a properly descriptive header comment for each function and one of the main emphases in our code reviews is to evaluate the legibility and sensibility of each function signature very carefully. My thinking is the comment sort of describes "developer's intent" whereas the naming of everything in the signature should give you a strong indication of what the function really does.
https://github.com/mgechev/revive
> Now is this going to buy you good architecture for free, of course not.
It's not architecture to tell people to comment on their functions.
Also FTR, people confuse cyclomatic complexity for automagically making code confusing to the weirdest example I have ever had to deal with - a team had unilaterally decided that the 'else' keyword could never be used in code.
-
vale for writing style.
-
Project mention: A zero-dep CLI that scans your GitHub Actions for the mistakes that actually get repos compromised | dev.to | 2026-06-12
It is not trying to replace actionlint (YAML/syntax validation) or zizmor (deep dataflow analysis). It's the fast, zero-config first pass that fits in a pre-commit hook or a one-line CI gate.
-
dockle
Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start
-
kube-score
Kubernetes object analysis with recommendations for improved reliability and security. kube-score actively prevents downtime and bugs in your Kubernetes YAML and Charts. Static code analysis for Kubernetes.
-
-
ls-lint
An extremely fast directory and filename linter - Bring some structure to your project filesystem
-
-
-
dep-tree
Tool for helping developers keep their code bases clean and decoupled. It allows visualising a code base complexity using a 3d force-directed graph of files and the dependencies between them.
Project mention: Visualize the entropy of a code base with a 3D force-directed graph | news.ycombinator.com | 2026-02-16https://github.com/gabotechs/dep-tree
-
-
vacuum
vacuum is the worlds fastest and most versatile OpenAPI, AsyncAPI & JSON Schema linter, docs generator and toolkit. It tears through API specs at light speed. 100% compatible with Spectral rulesets, and OpenAPI 3.0, 3.1 and 3.2
-
> And PromQL is so opaque, it just never give you an error unless there is a syntax issue. We need tools like https://github.com/cloudflare/pint just to know if my alert description isn’t trying to render a label that’s just not gonna be there, etc
PromQL should be blamed on prometheus though, not on grafana.
-
-
graphql-go-tools
GraphQL Router / API Gateway framework written in Golang, focussing on correctness, extensibility, and high-performance. Supports Federation v1 & v2, Subscriptions & more.
Project mention: GraphQL vs REST: 18 Claims Fact-Checked with Primary Sources (2026) | dev.to | 2026-04-17I run WunderGraph . We build GraphQL Federation infrastructure. I have a horse in this race, and you should know that upfront.
-
-
-
Neovim supports .editorconfig out of the box1, but it doesn't automatically enforce specified coding style. To ensure better code consistency, let's set up pre-commit with the editorconfig-checker hook.
-
Go Linter discussion
Go Linter related posts
-
A zero-dep CLI that scans your GitHub Actions for the mistakes that actually get repos compromised
-
"Renaming `user` when grep can't tell which model you mean"
-
Beyond Lines: Announcing "gosemdiff" – A Logic-Aware Diff Tool for Go
-
2026 Benchmark: Gemini 2.5 vs. OpenAI o4 for Translating Code Between Python 3.13 and Go 1.24
-
ci-doctor vs actionlint: when to use which
-
How I Built Inline Disable Comments for a Go Markdown Linter
-
A 300-Line GitHub Actions Security Linter: Five Rules That Catch the CVE Patterns
-
A note from our sponsor - SaaSHub
www.saashub.com | 13 Jun 2026
Index
What are some of the best open-source Linter projects in Go? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | golangci-lint | 19,072 |
| 2 | reviewdog | 9,353 |
| 3 | tfsec | 7,009 |
| 4 | go-tools | 6,817 |
| 5 | revive | 5,522 |
| 6 | vale | 5,453 |
| 7 | actionlint | 3,945 |
| 8 | dockle | 3,261 |
| 9 | kube-score | 3,074 |
| 10 | errcheck | 2,516 |
| 11 | ls-lint | 2,395 |
| 12 | go-critic | 2,055 |
| 13 | joker | 1,750 |
| 14 | dep-tree | 1,699 |
| 15 | checkmake | 1,201 |
| 16 | vacuum | 1,079 |
| 17 | pint | 1,024 |
| 18 | go-ruleguard | 870 |
| 19 | graphql-go-tools | 821 |
| 20 | protolint | 696 |
| 21 | noverify | 687 |
| 22 | editorconfig-checker | 624 |
| 23 | woke | 513 |