skillfed

tree-sitter-go

Go grammar for tree-sitter

tree-sitter-go v0.25.0 10.1M downloads/30d#1,484 on PyPI415
Permissive license MIT Active released

What it is and what it does

tree-sitter-go is a language grammar binding that provides Go syntax parsing for the tree-sitter incremental parsing framework. It allows developers to parse Go source code into syntax trees, enabling static analysis, code transformation, and language tooling without invoking the Go compiler. The package ships as precompiled wheels for multiple platforms, reducing installation friction.

The package itself is a thin wrapper around a tree-sitter grammar definition for Go. It has no runtime dependencies and works by exposing the compiled Go grammar to tree-sitter's parsing infrastructure. Typical use cases include building linters, refactoring tools, code generators, and IDE features that need to understand Go syntax programmatically.

Use it for:

  • Build a static analysis tool that inspects Go code for patterns or violations without running it.
  • Implement a code formatter or refactoring tool that transforms Go source while preserving structure.
  • Extract metrics or metadata from Go codebases (e.g., function counts, import analysis).
  • Create IDE plugins or editor extensions that need Go syntax awareness for highlighting or completion.
  • Generate documentation or reports by parsing Go package structure and comments.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a Go language grammar for tree-sitter, enabling incremental parsing and syntax tree analysis of Go source code.

Yes, if you need to parse or analyze Go code. The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and provides prebuilt wheels for common platforms. Medium install friction is typical for language grammars. Install if you're building tools that require Go syntax tree access.

Install

tree-sitter-go on PyPI

pip

pip install tree-sitter-go

uv

uv add tree-sitter-go

poetry

poetry add tree-sitter-go

Installing tree-sitter-go

Before you install

Medium install friction due to compiled wheels; prebuilt binaries available for common platforms (macOS x86_64/arm64, Linux x86_64/aarch64, Windows x64/arm64). Package is actively maintained with recent commits and no known vulnerabilities.

License in practice

MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

pip install tree-sitter-go

import tree_sitter_go

grammar = tree_sitter_go.language()

Requires Python 3.10 or later; assumes tree-sitter Python bindings are available in the environment.

Verify before relying

  • Whether the package includes documentation or examples beyond the GitHub repository.
  • Performance characteristics for parsing large Go codebases or real-world projects.
  • Compatibility with specific versions of the tree-sitter Python library.
  • How tree-sitter-go integrates with the broader tree-sitter ecosystem for practical use.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 350 days since the last release
Last repo commit
First released
Downloads 10,085,579/month — #1,484 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: tree_sitter_go-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl; tree_sitter_go-0.25.0-cp310-abi3-macosx_11_0_arm64.whl; tree_sitter_go-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; tree_sitter_go-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tree_sitter_go-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl; tree_sitter_go-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl; tree_sitter_go-0.25.0-cp310-abi3-win_amd64.whl; tree_sitter_go-0.25.0-cp310-abi3-win_arm64.whl

Keywords: incremental, parsing, tree-sitter, go

Intended Audience :: DevelopersTopic :: Software Development :: CompilersTopic :: Text Processing :: LinguisticTyping :: Typed

Tags

go language parsingtree-sitter go grammarincremental go parsergo syntax treego code analysistree-sitter language bindinggo ast parsing
parsinggo-languagesyntax-analysis

More Linguistic packages