Skip to content

Installation

tree-sitter-language-pack is available for every major ecosystem. All packages share the same version and API surface.

Python

Requires Python 3.10+.

pip install tree-sitter-language-pack
uv add tree-sitter-language-pack
poetry add tree-sitter-language-pack

Verify the installation:

python import tree_sitter_language_pack as tslp print(tslp.language_count()) # 173text

Node.js

Requires Node.js 18+.

bash npm install @kreuzberg/tree-sitter-language-pack

bash pnpm add @kreuzberg/tree-sitter-language-pack

bash yarn add @kreuzberg/tree-sitter-language-pack

Verify:

javascript const tslp = require("@kreuzberg/tree-sitter-language-pack"); console.log(tslp.languageCount()); // 173text

The package ships pre-built native binaries for Linux (x64, arm64), macOS (x64, arm64), and Windows (x64).

Rust

Requires Rust 1.75+.

bash cargo add ts-pack-coretext

Or add to Cargo.toml manually:

toml [dependencies] ts-pack-core = "1"text

Verify:

rust fn main() { println!("{}", ts_pack_core::language_count()); // 173 }text

Go

Requires Go 1.26+.

bash go get github.com/kreuzberg-dev/tree-sitter-language-pack/packages/go/v1text

```go import tslp "github.com/kreuzberg-dev/tree-sitter-language-pack/packages/go/v1"

func main() { fmt.Println(tslp.LanguageCount()) // 173 } ```text

The Go binding uses cgo and links against the pre-compiled C FFI library.

Java

Requires Java 21+ (uses Panama FFM API).

xml <dependency> <groupId>dev.kreuzberg</groupId> <artifactId>tree-sitter-language-pack</artifactId> <version>1.0.0</version> </dependency>

kotlin dependencies { implementation("dev.kreuzberg:tree-sitter-language-pack:1.0.0") }

groovy dependencies { implementation 'dev.kreuzberg:tree-sitter-language-pack:1.0.0' }

```java import dev.kreuzberg.TreeSitterLanguagePack;

public class Main { public static void main(String[] args) { System.out.println(TreeSitterLanguagePack.languageCount()); // 173 } } ```text

C# / .NET

Requires .NET 10+.

bash dotnet add package TreeSitterLanguagePack

powershell Install-Package TreeSitterLanguagePack

xml <PackageReference Include="TreeSitterLanguagePack" Version="1.0.0" />

```csharp using TreeSitterLanguagePack;

Console.WriteLine(Pack.LanguageCount()); // 173 ```text

Ruby

Requires Ruby 3.4+.

bash gem install tree_sitter_language_pack

ruby gem "tree_sitter_language_pack", "~> 1.0"

bash bundle install

```ruby require "tree_sitter_language_pack"

puts TreeSitterLanguagePack.language_count # 173 ```text

Elixir

Requires Elixir 1.14+ and OTP 25+.

elixir defp deps do [ {:tree_sitter_language_pack, "~> 1.0"} ] end

bash mix deps.get

elixir IO.puts TreeSitterLanguagePack.language_count() # 173text

PHP

Requires PHP 8.2+.

bash composer require kreuzberg/tree-sitter-language-pack

json { "require": { "kreuzberg/tree-sitter-language-pack": "^1.0" } }

```php

import { init, getParser } from "https://cdn.jsdelivr.net/npm/@kreuzberg/tree-sitter-language-pack-wasm/+esm"; await init(); ``` === "Deno" ```typescript import { init, getParser } from "npm:@kreuzberg/tree-sitter-language-pack-wasm"; await init(); ``` ## CLI The `ts-pack` binary provides parser management and code analysis from the terminal. === "Homebrew (macOS / Linux)" ```bash brew install kreuzberg-dev/tap/ts-pack ``` === "Cargo" ```bash cargo install ts-pack ``` === "Install script" ```bash curl -fsSL https://raw.githubusercontent.com/kreuzberg-dev/tree-sitter-language-pack/main/install.sh | bash ``` Verify: ```bash ts-pack --version ts-pack list | wc -l # 173 ```text ## Next Steps - [Quick Start guide](quickstart.md) — parse your first file in 5 minutes - [Download model](../concepts/download-model.md) — understand how parser caching works - [Languages](../languages.md) — full list of 170+ supported languages ?>