Skip to content

Installation

Install using the CLI

The ts-pack CLI allows you to manage parsers and run code analysis directly from your terminal. You can use it in CI pipelines, automation scripts, or to explore and experiment with 306 supported languages Available by v1.9.

CLI Homebrew bundles available by v1.9

brew trust kreuzberg-dev/tap
brew install kreuzberg-dev/tap/ts-pack
cargo install ts-pack-cli
Verify
ts-pack --version
ts-pack list | wc -l   # → 306

Language Bindings

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:

import tree_sitter_language_pack as tslp
print(tslp.language_count())  # 306

Node.js

Requires Node.js 18+. Pre-built binaries for Linux (x64, arm64), macOS (x64, arm64), and Windows (x64).

npm install @kreuzberg/tree-sitter-language-pack
pnpm add @kreuzberg/tree-sitter-language-pack
yarn add @kreuzberg/tree-sitter-language-pack

Verify:

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

Rust

Requires Rust 1.85+.

cargo add tree-sitter-language-pack
[dependencies]
tree-sitter-language-pack = "1"

Verify:

fn main() {
    println!("{}", tree_sitter_language_pack::language_count()); // 306
}

Go

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

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

func main() {
    fmt.Println(tslp.LanguageCount()) // 306
}

Java

Requires JDK 25+ (uses Panama FFM API).

<dependency>
    <groupId>dev.kreuzberg.treesitterlanguagepack</groupId>
    <artifactId>tree-sitter-language-pack</artifactId>
    <version>1.9.0-rc.49</version>
</dependency>
dependencies {
    implementation("dev.kreuzberg.treesitterlanguagepack:tree-sitter-language-pack:1.9.0-rc.49")
}
dependencies {
    implementation 'dev.kreuzberg.treesitterlanguagepack:tree-sitter-language-pack:1.9.0-rc.49'
}

Verify:

import dev.kreuzberg.treesitterlanguagepack.TreeSitterLanguagePack;

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

C# Available by v1.9

Requires .NET 10.

dotnet add package TreeSitterLanguagePack --version 1.9.0-rc.49

Verify:

using TreeSitterLanguagePack;

Console.WriteLine(TreeSitterLanguagePackConverter.LanguageCount()); // 306

The NuGet package includes native runtime assets for Windows, Linux, and macOS.


Ruby

Requires Ruby 3.2+.

gem install tree_sitter_language_pack
gem "tree_sitter_language_pack", "~> 1.9"
bundle install

Verify:

require "tree_sitter_language_pack"

puts TreeSitterLanguagePack.language_count # 306

Elixir

Requires Elixir 1.14+ and OTP 25+.

defp deps do
  [
    {:tree_sitter_language_pack, "~> 1.9"}
  ]
end
mix deps.get

Verify:

IO.puts TreeSitterLanguagePack.language_count() # 306

PHP

Requires PHP 8.2+. This package is a native PHP extension (type: php-ext). Install mlocati/php-extension-installer first so Composer can download and register the compiled .so/.dll:

composer require mlocati/php-extension-installer
composer require kreuzberg-dev/tree-sitter-language-pack
{
    "require": {
        "mlocati/php-extension-installer": "^2.0",
        "kreuzberg-dev/tree-sitter-language-pack": "^1.9"
    }
}

Verify:

<?php
echo \ts_pack_language_count(); // 306

Dart

Requires Dart 3.11+.

dart pub add tree_sitter_language_pack

Kotlin Android Available by v1.9

Requires Android minSdk 21 and Java 17 bytecode.

implementation("dev.kreuzberg.tslp.android:tree-sitter-language-pack-android:1.9.0-rc.49")

This is an Android AAR. Kotlin/JVM users should use the Java artifact.


Swift

Requires Swift 6.0+.

.package(
    url: "https://github.com/kreuzberg-dev/tree-sitter-language-pack",
    exact: "1.9.0-rc.49"
)

Zig

Requires Zig 0.16+.

zig fetch --save <release tarball url>

The package name is tree_sitter_language_pack.


C FFI

Download the shared library and generated C header from GitHub Releases. The C FFI is the stable native contract used by the generated native packages.


WebAssembly

Use from any JavaScript environment — browsers, Deno, and Cloudflare Workers.

npm install @kreuzberg/tree-sitter-language-pack-wasm
<script type="module">
  import { availableLanguages, parseString } from "https://cdn.jsdelivr.net/npm/@kreuzberg/tree-sitter-language-pack-wasm/+esm";
  console.log(availableLanguages());
</script>
import { availableLanguages, parseString } from "npm:@kreuzberg/tree-sitter-language-pack-wasm";
console.log(availableLanguages());

The WASM package is a static curated subset of parsers compiled into the module. It does not expose the native download/cache helpers.


Next Steps

Edit this page on GitHub