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+.
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 ?>