tree-sitter/cli
ObserverOfTime 9504c247d6 fix(bindings): improve zig dependency fetching logic
Currently, including a tree-sitter parser as a dependency in a zig
project and running `zig build test` on the project will fetch the
zig-tree-sitter dependency declared by the parser. This is a problem
because (a) consumers may not want this dependency for whatever reason
and (b) due to how often Zig breaks everything and how scarcely most
tree-sitter parsers are updated, the zig-tree-sitter version pinned
by the parser module will often be outdated and broken.

The workaround I used was taken from https://ziggit.dev/t/11234

(cherry picked from commit 107bd800b0)
2025-08-28 10:59:06 +02:00
..
benches fix(rust): adapt to new nightly lint 2025-03-06 18:25:24 -05:00
config chore: a few minor lints 2025-01-21 00:57:58 -05:00
eslint build(deps): bump cross-spawn from 7.0.3 to 7.0.5 in /cli/eslint 2024-11-22 23:18:29 -05:00
generate fix(cli): add reserved type declarations and schema 2025-08-02 11:51:09 +02:00
loader fix(bindings): use custom class name 2025-08-08 12:38:41 +03:00
npm fix(cli): add reserved type declarations and schema 2025-08-02 11:51:09 +02:00
src fix(bindings): improve zig dependency fetching logic 2025-08-28 10:59:06 +02:00
build.rs Revert "feat: add build sha to parser.c header comment" (#4475) 2025-05-29 23:14:25 +02:00
Cargo.toml fix(generate): use topological sort for subtype map 2025-07-10 17:43:08 -04:00
README.md docs(rust): add --locked to installation instructions 2024-10-30 10:51:46 -04:00

Tree-sitter CLI

crates.io badge npmjs.com badge

The Tree-sitter CLI allows you to develop, test, and use Tree-sitter grammars from the command line. It works on MacOS, Linux, and Windows.

Installation

You can install the tree-sitter-cli with cargo:

cargo install --locked tree-sitter-cli

or with npm:

npm install tree-sitter-cli

You can also download a pre-built binary for your platform from the releases page.

Dependencies

The tree-sitter binary itself has no dependencies, but specific commands have dependencies that must be present at runtime:

  • To generate a parser from a grammar, you must have node on your PATH.
  • To run and test parsers, you must have a C and C++ compiler on your system.

Commands

  • generate - The tree-sitter generate command will generate a Tree-sitter parser based on the grammar in the current working directory. See the documentation for more information.

  • test - The tree-sitter test command will run the unit tests for the Tree-sitter parser in the current working directory. See the documentation for more information.

  • parse - The tree-sitter parse command will parse a file (or list of files) using Tree-sitter parsers.