Skip to content

Supported Languages

tree-sitter-language-pack supports 173 languages. All parsers are available for download on demand via ts-pack download <language> or automatically on first use.

Language List

Language Name (API) Grammar Source
ActionScript actionscript Rileran/tree-sitter-actionscript
Ada ada briot/tree-sitter-ada
Agda agda tree-sitter/tree-sitter-agda
Apex apex aheber/tree-sitter-sfapex
Arduino arduino tree-sitter-grammars/tree-sitter-arduino
Assembly asm RubixDev/tree-sitter-asm
Astro astro virchau13/tree-sitter-astro
Bash bash tree-sitter/tree-sitter-bash
Batch batch tree-sitter-grammars/tree-sitter-batch
Beancount beancount polarmutex/tree-sitter-beancount
BibTeX bibtex latex-lsp/tree-sitter-bibtex
Bicep bicep tree-sitter-grammars/tree-sitter-bicep
BitBake bitbake tree-sitter-grammars/tree-sitter-bitbake
BSL bsl nixel2007/tree-sitter-bsl
C c tree-sitter/tree-sitter-c
Cairo cairo tree-sitter-grammars/tree-sitter-cairo
Cap'n Proto capnp tree-sitter-grammars/tree-sitter-capnp
Chatito chatito tree-sitter-grammars/tree-sitter-chatito
Clarity clarity xlittlerag/tree-sitter-clarity
Clojure clojure tree-sitter-grammars/tree-sitter-clojure
CMake cmake uyha/tree-sitter-cmake
COBOL cobol nickel-lang/tree-sitter-cobol
Comment comment stsewd/tree-sitter-comment
Common Lisp commonlisp tree-sitter-grammars/tree-sitter-commonlisp
CPON cpon tree-sitter-grammars/tree-sitter-cpon
C++ cpp tree-sitter/tree-sitter-cpp
CSS css tree-sitter/tree-sitter-css
CSV csv tree-sitter-grammars/tree-sitter-csv
CUDA cuda tree-sitter-grammars/tree-sitter-cuda
D d gdamore/tree-sitter-d
Dart dart UserNobody14/tree-sitter-dart
Diff diff the-mikedavis/tree-sitter-diff
Dockerfile dockerfile camdencheek/tree-sitter-dockerfile
Doxygen doxygen tree-sitter-grammars/tree-sitter-doxygen
DTD dtd tree-sitter-grammars/tree-sitter-xml
Emacs Lisp elisp Wilfred/tree-sitter-elisp
Elixir elixir elixir-lang/tree-sitter-elixir
Elm elm elm-tooling/tree-sitter-elm
Erlang erlang WhatsApp/tree-sitter-erlang
Fennel fennel alexmozaidze/tree-sitter-fennel
FIRRTL firrtl tree-sitter-grammars/tree-sitter-firrtl
Fish fish ram02z/tree-sitter-fish
Fortran fortran stadelmanma/tree-sitter-fortran
F# fsharp nickel-lang/tree-sitter-fsharp
F# Signature fsharp_signature nickel-lang/tree-sitter-fsharp
FunC func tree-sitter-grammars/tree-sitter-func
GDScript gdscript PrestonKnopp/tree-sitter-gdscript
Git Attributes gitattributes tree-sitter-grammars/tree-sitter-gitattributes
Git Commit gitcommit the-mikedavis/tree-sitter-git-commit
Git Ignore gitignore shunsambongi/tree-sitter-gitignore
Gleam gleam gleam-lang/tree-sitter-gleam
GLSL glsl tree-sitter-grammars/tree-sitter-glsl
GN gn tree-sitter-grammars/tree-sitter-gn
Go go tree-sitter/tree-sitter-go
Go Module gomod camdencheek/tree-sitter-gomod
Go Sum gosum tree-sitter-grammars/tree-sitter-gosum
GraphQL graphql bkegley/tree-sitter-graphql
Groovy groovy nickel-lang/tree-sitter-groovy
GStreamer Launch gstlaunch tree-sitter-grammars/tree-sitter-gstlaunch
Hack hack slackhq/tree-sitter-hack
Hare hare tree-sitter-grammars/tree-sitter-hare
Haskell haskell tree-sitter/tree-sitter-haskell
Haxe haxe vantreeseba/tree-sitter-haxe
HCL hcl MichaHoffmann/tree-sitter-hcl
HEEx heex phoenixframework/tree-sitter-heex
HLSL hlsl tree-sitter-grammars/tree-sitter-hlsl
HTML html tree-sitter/tree-sitter-html
Hyprland Config hyprlang tree-sitter-grammars/tree-sitter-hyprlang
INI ini justinmk/tree-sitter-ini
ISPC ispc tree-sitter-grammars/tree-sitter-ispc
Janet janet tree-sitter-grammars/tree-sitter-janet-simple
Java java tree-sitter/tree-sitter-java
JavaScript javascript tree-sitter/tree-sitter-javascript
JSDoc jsdoc tree-sitter/tree-sitter-jsdoc
JSON json tree-sitter/tree-sitter-json
Jsonnet jsonnet sourcegraph/tree-sitter-jsonnet
Julia julia tree-sitter/tree-sitter-julia
KConfig kconfig tree-sitter-grammars/tree-sitter-kconfig
KDL kdl nickel-lang/tree-sitter-kdl
Kotlin kotlin nickel-lang/tree-sitter-kotlin
LaTeX latex latex-lsp/tree-sitter-latex
Linker Script linkerscript tree-sitter-grammars/tree-sitter-linkerscript
LLVM IR llvm benwilliamgraham/tree-sitter-llvm
Lua lua tree-sitter-grammars/tree-sitter-lua
LuaDoc luadoc tree-sitter-grammars/tree-sitter-luadoc
Lua Patterns luap tree-sitter-grammars/tree-sitter-luap
Luau luau tree-sitter-grammars/tree-sitter-luau
Magik magik krn-robin/tree-sitter-magik
Make make tree-sitter-grammars/tree-sitter-make
Markdown markdown MDeiml/tree-sitter-markdown
Markdown Inline markdown_inline MDeiml/tree-sitter-markdown
MATLAB matlab acristoffers/tree-sitter-matlab
Mermaid mermaid monaqa/tree-sitter-mermaid
Meson meson Decodetalkers/tree-sitter-meson
NetLinx netlinx amclain/tree-sitter-netlinx
Nim nim nickel-lang/tree-sitter-nim
Ninja ninja tree-sitter-grammars/tree-sitter-ninja
Nix nix cstrahan/tree-sitter-nix
NQC nqc tree-sitter-grammars/tree-sitter-nqc
Objective-C objc tree-sitter-grammars/tree-sitter-objc
OCaml ocaml tree-sitter/tree-sitter-ocaml
OCaml Interface ocaml_interface tree-sitter/tree-sitter-ocaml
Odin odin tree-sitter-grammars/tree-sitter-odin
Org Mode org milisims/tree-sitter-org
Pascal pascal nickel-lang/tree-sitter-pascal
PEM pem tree-sitter-grammars/tree-sitter-pem
Perl perl nickel-lang/tree-sitter-perl
PGN (Chess) pgn tree-sitter-grammars/tree-sitter-pgn
PHP php tree-sitter/tree-sitter-php
PKL pkl nickel-lang/tree-sitter-pkl
PO (Gettext) po tree-sitter-grammars/tree-sitter-po
Pony pony nickel-lang/tree-sitter-pony
PowerShell powershell nickel-lang/tree-sitter-powershell
Printf printf tree-sitter-grammars/tree-sitter-printf
Prisma prisma victorhqc/tree-sitter-prisma
Properties properties nickel-lang/tree-sitter-properties
Protocol Buffers proto mitchellh/tree-sitter-proto
PSV psv tree-sitter-grammars/tree-sitter-csv
Puppet puppet nickel-lang/tree-sitter-puppet
PureScript purescript nickel-lang/tree-sitter-purescript
PyManifest pymanifest tree-sitter-grammars/tree-sitter-pymanifest
Python python tree-sitter/tree-sitter-python
QML Directory qmldir nickel-lang/tree-sitter-qmldir
QML JS qmljs nickel-lang/tree-sitter-qmljs
Tree-sitter Query query nickel-lang/tree-sitter-query
R r r-lib/tree-sitter-r
Racket racket nickel-lang/tree-sitter-racket
re2c re2c nickel-lang/tree-sitter-re2c
Readline readline nickel-lang/tree-sitter-readline
Rego (OPA) rego nickel-lang/tree-sitter-rego
Requirements.txt requirements nickel-lang/tree-sitter-requirements
RON ron nickel-lang/tree-sitter-ron
RST rst nickel-lang/tree-sitter-rst
Ruby ruby tree-sitter/tree-sitter-ruby
Rust rust tree-sitter/tree-sitter-rust
Scala scala tree-sitter/tree-sitter-scala
Scheme scheme nickel-lang/tree-sitter-scheme
SCSS scss serenadeai/tree-sitter-scss
Smali smali nickel-lang/tree-sitter-smali
Smithy smithy nickel-lang/tree-sitter-smithy
Solidity solidity nickel-lang/tree-sitter-solidity
SPARQL sparql nickel-lang/tree-sitter-sparql
SQL sql DerekStride/tree-sitter-sql
Squirrel squirrel nickel-lang/tree-sitter-squirrel
Starlark starlark nickel-lang/tree-sitter-starlark
Svelte svelte nickel-lang/tree-sitter-svelte
Swift swift nickel-lang/tree-sitter-swift
TableGen tablegen nickel-lang/tree-sitter-tablegen
Tcl tcl nickel-lang/tree-sitter-tcl
Terraform / HCL terraform MichaHoffmann/tree-sitter-hcl
Test test tree-sitter/tree-sitter-test
Thrift thrift nickel-lang/tree-sitter-thrift
TOML toml tree-sitter-grammars/tree-sitter-toml
TSV tsv tree-sitter-grammars/tree-sitter-csv
TSX tsx tree-sitter/tree-sitter-javascript
Twig twig nickel-lang/tree-sitter-twig
TypeScript typescript tree-sitter/tree-sitter-typescript
Typst typst nickel-lang/tree-sitter-typst
udev Rules udev nickel-lang/tree-sitter-udev
Ungrammar ungrammar nickel-lang/tree-sitter-ungrammar
Uxntal uxntal nickel-lang/tree-sitter-uxntal
V v v-analyzer/tree-sitter-v
Verilog verilog tree-sitter/tree-sitter-verilog
VHDL vhdl nickel-lang/tree-sitter-vhdl
Vim Script vim neovim/tree-sitter-vimdoc
Vue vue nickel-lang/tree-sitter-vue
WebAssembly Text wast wasm-lsp/tree-sitter-wasm
WebAssembly Binary wat wasm-lsp/tree-sitter-wasm
WGSL wgsl nickel-lang/tree-sitter-wgsl
XCompose xcompose nickel-lang/tree-sitter-xcompose
XML xml tree-sitter-grammars/tree-sitter-xml
Yuck yuck Aylur/tree-sitter-yuck
Zig zig maxxnino/tree-sitter-zig

Checking Language Availability

from tree_sitter_language_pack import has_language, available_languages, language_count

print(has_language("python"))      # True
print(has_language("brainfuck"))   # False
print(language_count())            # 173

for lang in sorted(available_languages()):
    print(lang)
import { hasLanguage, availableLanguages, languageCount } from "@kreuzberg/tree-sitter-language-pack";

console.log(hasLanguage("python"));     // true
console.log(languageCount());           // 173

for (const lang of availableLanguages().sort()) {
  console.log(lang);
}
ts-pack list
ts-pack list | wc -l   # 173

Requesting a Language

Missing a language? Open an issue or see the Contributing guide to add it yourself. Adding a language requires:

  1. A publicly available tree-sitter grammar.
  2. An entry in sources/language_definitions.json.
  3. Passing CI on Linux, macOS, and Windows.