golang

golang/tools

Go BSD-3-Clause Dev Tools

[mirror] Go Tools

8k stars
2.4k forks
active
GitHub +4 / week

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.

Dev Tools Developer Tool Discovery value: 2/10
Documentation 8/10
Activity 9/10
Community 9/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

go-tooling static-analysis language-server ast-manipulation developer-tools
Actively maintained Well documented Niche/specialized use case Popular Production ready
Deep Analysis · Based on README and public signals
2w ago

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.

Origin

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.

Growth

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.

In production

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.

Code analysis
Architecture

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.

Tests

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.

Maintenance

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.

Honest verdict

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

Risks
  • 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.
Prediction

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.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Go
99%
JavaScript
0.6%
CSS
0.2%
Go Template
0.1%
Shell
0.1%
Dockerfile
0%

Information

Language
Go
License
BSD-3-Clause
Last updated
16h ago
Created
141mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

dominikh

dominikh/go-tools

Staticcheck is a state-of-the-art Go linter that uses static analysis to detect...

6.8k Go Dev Tools
mongodb

mongodb/mongo-tools

MongoDB Tools is a collection of command-line utilities for working with...

1k Go Data
dreddsa5dies

dreddsa5dies/goHackTools

goHackTools is a collection of security and penetration testing utilities...

2.2k Go Security
golang

golang/vscode-go

The VS Code Go extension provides official language support for Go development,...

4.3k TypeScript Dev Tools
golang

golang/go

The Go programming language is an open source, statically typed, compiled...

135.3k Go Dev Tools
vs. alternatives
dominikh/go-tools (staticcheck)

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/golangci-lint

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.

golang/go (stdlib)

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.

google/gops

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.

analysis-tools-dev/static-analysis

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.