tree-sitter-go
Go grammar for tree-sitter
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-gouv
uv add tree-sitter-gopoetry
poetry add tree-sitter-goInstalling 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
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
tree-sitter-cProvides a C language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-scalaProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-verilogProvides a SystemVerilog grammar parser for…
permissive · top 5,000 on PyPI
tree-sitter-swiftProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-typescriptProvides TypeScript and TSX language grammars…
permissive · top 5,000 on PyPI
tree-sitter-pythonProvides a Python grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-javascriptProvides a JavaScript and JSX parser grammar…
permissive · top 5,000 on PyPI
tree-sitter-luaProvides a tree-sitter grammar for parsing Lua…
permissive · top 5,000 on PyPI
tree-sitter-objcProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI