{"id":18865,"library":"tree-sitter-cli","title":"Tree-sitter CLI","description":"CLI tool for generating and testing Tree-sitter parsers, version 0.26.8. Released as part of the tree-sitter project, which provides a fast incremental parser framework. The CLI supports generating parser C code from grammar files, testing parsers, and building WASM modules. Key differentiators include high performance, incremental parsing with error recovery, and support for multiple languages via grammar definitions. Release cadence is frequent with minor bug fixes and improvements.","status":"active","version":"0.26.8","language":"javascript","source_language":"en","source_url":"https://github.com/tree-sitter/tree-sitter","tags":["javascript","parser","lexer"],"install":[{"cmd":"npm install tree-sitter-cli","lang":"bash","label":"npm"},{"cmd":"yarn add tree-sitter-cli","lang":"bash","label":"yarn"},{"cmd":"pnpm add tree-sitter-cli","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for running the CLI","package":"node","optional":true}],"imports":[{"note":"Use 'web-tree-sitter' for browser/Node ESM; 'tree-sitter' is the C library","wrong":"const Parser = require('tree-sitter')","symbol":"tree-sitter","correct":"import Parser from 'web-tree-sitter'"},{"note":"Language class is named export in web-tree-sitter","wrong":"import Language from 'tree-sitter'","symbol":"Language","correct":"import { Language } from 'web-tree-sitter'"},{"note":"Default import for C++ Node addon; ESM not available","wrong":"const treeSitter = require('tree-sitter')","symbol":"Parser","correct":"import Parser from 'tree-sitter'"},{"note":"CLI command, not importable","wrong":"","symbol":"generate","correct":"npx tree-sitter generate"}],"quickstart":{"code":"const Parser = require('tree-sitter');\nconst JavaScript = require('tree-sitter-javascript');\n\nconst parser = new Parser();\nparser.setLanguage(JavaScript);\n\nconst sourceCode = 'let x = 1;';\nconst tree = parser.parse(sourceCode);\nconsole.log(tree.rootNode.toString());\n// (program (lexical_declaration (variable_declarator (identifier) (number))))","lang":"javascript","description":"Parse JavaScript source code using tree-sitter and print the syntax tree."},"warnings":[{"fix":"Update grammar files to new format (see migration guide)","message":"tree-sitter 0.20+ changed the grammar format; old grammars may not work","severity":"breaking","affected_versions":">=0.20"},{"fix":"Use 'web-tree-sitter' for browser or Node ESM","message":"require('tree-sitter') returns the native addon, not the web binding","severity":"gotcha","affected_versions":"all"},{"fix":"Use --ranges or remove flag","message":"tree-sitter 0.25 deprecated the --no-ranges flag","severity":"deprecated","affected_versions":">=0.25"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install tree-sitter","cause":"Native module not installed or incompatible","error":"Error: Cannot find module 'tree-sitter'"},{"fix":"Use: const Parser = require('tree-sitter');","cause":"Using default import as named import","error":"TypeError: Parser is not a constructor"},{"fix":"Ensure language module is correctly loaded (e.g., require('tree-sitter-javascript'))","cause":"WASM or native language file missing","error":"Error: Language not loaded"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}