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 300+ supported languages.

CLI

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.7.0</version>
</dependency>
dependencies {
    implementation("dev.kreuzberg.treesitterlanguagepack:tree-sitter-language-pack:1.7.0")
}
dependencies {
    implementation 'dev.kreuzberg.treesitterlanguagepack:tree-sitter-language-pack:1.7.0'
}

Verify:

import dev.kreuzberg.TreeSitterLanguagePack;

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

Ruby

Requires Ruby 3.2+.

gem install tree_sitter_language_pack
gem "tree_sitter_language_pack", "~> 1.0"
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.0"}
  ]
end
mix deps.get

Verify:

IO.puts TreeSitterLanguagePack.language_count() # 306

PHP

Requires PHP 8.4+. 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/tree-sitter-language-pack
{
    "require": {
        "mlocati/php-extension-installer": "^2.0",
        "kreuzberg/tree-sitter-language-pack": "^1.0"
    }
}

Verify:

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

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());

Next Steps