[mirror] Go Tools
8k
Stars
2.4k
Forks
117
Open issues
30
Contributors
AI Analysis
golang/tools provides a comprehensive collection of static analysis tools and packages for Go programs, including the widely-used gopls language server for IDE integration. It serves Go developers and tool authors who need sophisticated code analysis capabilities, AST manipulation, type checking, and LSP support. This is specialized infrastructure for the Go ecosystem rather than a general-purpose library.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Go's official extended toolchain: gopls, goimports, and the static analysis foundation used by the entire ecosystem
golang.org/x/tools is the official Go extended toolchain maintained by the Go team at Google. It provides gopls (the Go Language Server used by VS Code, Vim, Emacs, and virtually every Go-capable editor), goimports, stringer, and foundational packages (go/analysis, go/ssa, go/packages) that almost every third-party Go static analysis tool depends on. It targets Go developers broadly, from individual contributors to large engineering teams. This is not a niche project — it underpins the Go developer experience at scale.
Created in November 2014 as a mirror of the canonical Go team Gerrit repository (go.googlesource.com/tools). It evolved from scattered tooling into the authoritative home of gopls and the go/analysis framework, which became the standard way to write Go analyzers circa 2018–2020.
Star growth is slow (2 per week) because this is infrastructure, not an end-user product people discover and star. Adoption is driven structurally: every Go editor integration depends on gopls, every golangci-lint analyzer uses go/analysis, and virtually every Go project uses goimports. Growth tracks Go language adoption itself rather than social discovery.
Production adoption is extremely well-documented indirectly: gopls is the official Go LSP server shipped by VS Code Go extension (millions of installs), golangci-lint and staticcheck both depend on go/analysis and go/packages, and goimports is used by virtually every Go developer. Direct star count understates real-world usage significantly because most consumption is programmatic (as a library dependency) rather than starred discovery.
Appears to be a monorepo of loosely coupled packages and commands. The go/analysis framework provides a plugin-style analyzer interface; go/ssa offers compiler-like SSA IR; gopls is a self-contained LSP server subdirectory. Likely uses internal Go compiler APIs extensively. The Gerrit-based contribution model suggests structured code review consistent with Go team standards.
Not documented in README, but as an official Go team repository it almost certainly has extensive test suites. The use of CI and Gerrit code review strongly implies enforced test coverage, though specific metrics are not stated.
Last push on 2026-06-24 (same day as evaluation) indicates active, continuous development. As a Go team project with daily commits visible via Gerrit, this is one of the most actively maintained repositories in the Go ecosystem. Maintenance is effectively guaranteed as long as Go itself exists.
ADOPT IF: you are writing Go code (you already use this implicitly via your editor and linter), building a Go static analysis tool, writing a new linter, or need programmatic access to Go type information or call graphs. AVOID IF: you are looking for runtime profiling or tracing tools — x/tools is primarily static analysis and editor tooling. MONITOR IF: you are tracking gopls performance improvements or the go/analysis API evolution for a downstream tool you maintain.
Independent dimensions
Mainstream potential
9/10
Technical importance
10/10
Adoption evidence
9/10
- API stability for library consumers: x/ module packages can have breaking changes between minor versions, requiring downstream tools to track updates carefully.
- gopls resource consumption (memory and CPU) on very large monorepos has historically been a pain point; improvements are ongoing but not fully resolved as of available information.
- The Gerrit-based contribution workflow is a barrier for external contributors compared to GitHub PRs, potentially slowing community-driven improvements.
- Tight coupling to Go compiler internals means any significant Go language change requires coordinated updates across the entire x/tools package set.
- Being a mirror repository on GitHub means issue tracking and primary development happen elsewhere (go.googlesource.com / go.dev/issues), which can create confusion for users filing GitHub issues.
This project will continue to be the foundational layer of the Go tooling ecosystem for as long as Go exists. Gopls maturity and performance will improve incrementally. Its role will not shrink.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://golang.org/x/tools
- Language
- Go
- License
- BSD-3-Clause
- Last updated
- 16h ago
- Created
- 141mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
No open issues — clean slate.
Top contributors
Similar repos
dominikh/go-tools
Staticcheck is a state-of-the-art Go linter that uses static analysis to detect...
dreddsa5dies/goHackTools
goHackTools is a collection of security and penetration testing utilities...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
8k | +4 | Go | 8/10 | 16h ago |
|
|
6.8k | — | Go | 9/10 | 1w ago |
|
|
1k | — | Go | 7/10 | 13h ago |
|
|
2.2k | — | Go | 6/10 | 6d ago |
|
|
4.3k | — | TypeScript | 8/10 | 21h ago |
|
|
135.3k | — | Go | 10/10 | 14h ago |
staticcheck builds on top of golang.org/x/tools (uses go/analysis framework). It is a consumer, not a competitor. The two projects are complementary.
golangci-lint is a runner that aggregates linters, most of which are implemented using golang.org/x/tools packages. Again a downstream consumer, not a competitor.
Some tooling (go vet, go fmt) lives in the main Go repo. x/tools hosts extended or experimental tooling that doesn't belong in the core distribution, following Go's x/ module policy.
gops is a runtime diagnostics tool for running Go processes; x/tools focuses on static analysis and editor support. Different problem domains with minimal overlap.
A curated list/catalog of static analysis tools, not a toolchain itself. Not a meaningful competitor — it would likely list gopls and goimports as entries.