tree-sitter-javascript
JavaScript grammar for tree-sitter
What it is and what it does
tree-sitter-javascript is a language grammar binding that brings JavaScript and JSX parsing to the tree-sitter incremental parser framework. It translates JavaScript source code into syntax trees that can be queried and analyzed programmatically, following the ECMAScript specification with extensions for JSX. The package ships as precompiled wheels for multiple platforms, so installation is straightforward on supported architectures.
You use it when you need to parse, analyze, or manipulate JavaScript code at the syntax level—extracting function definitions, traversing AST nodes, or building code analysis tools. It integrates with the broader tree-sitter ecosystem, which provides query languages and incremental re-parsing for efficient updates when code changes.
Use it for:
- Build linters or code quality tools that need to traverse JavaScript syntax trees
- Extract metadata from JavaScript files (function names, imports, exports) for documentation or refactoring
- Implement syntax-aware code editors or IDE features using incremental parsing
- Analyze JavaScript codebases for security patterns or architectural violations
- Generate code transformations or automated refactoring by matching and rewriting AST nodes
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a JavaScript and JSX parser grammar for tree-sitter, enabling incremental parsing and syntax tree analysis of JavaScript code.
Yes, if you are building JavaScript analysis or transformation tools and want a standards-aligned parser. The MIT license is permissive, prebuilt wheels reduce friction, and the grammar tracks ECMAScript closely. The aging maintenance status (347 days since last release) is a minor concern for a stable grammar—monitor the repository for critical updates, but this is a mature, dependency-free binding suitable for production use.
Install
tree-sitter-javascript on PyPI
pip
pip install tree-sitter-javascriptuv
uv add tree-sitter-javascriptpoetry
poetry add tree-sitter-javascriptInstalling tree-sitter-javascript
Before you install
Medium install friction due to compiled wheels; prebuilt binaries available for common platforms but requires Python 3.10+. Last release was 347 days ago; repository is active but aging.
License in practice
MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal obligations.
Quickstart
pip install tree-sitter-javascript
import tree_sitter_javascript
# Use with tree-sitter parser to parse JavaScript code
Requires Python 3.10 or later
Verify before relying
- Completeness of ECMAScript 2025 feature support relative to the full specification
- Performance characteristics and memory footprint for large codebases
- Stability and breaking changes across minor version increments
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 347 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 15,159,131/month — #1,198 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_javascript-0.25.0-cp310-abi3-macosx_10_9_x86_64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-macosx_11_0_arm64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-musllinux_1_2_aarch64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-musllinux_1_2_x86_64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-win_amd64.whl; tree_sitter_javascript-0.25.0-cp310-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, javascript
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-typescriptProvides TypeScript and TSX language grammars…
permissive · top 5,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
esprimaEsprima parses ECMAScript (JavaScript) source…
permissive · top 15,000 on PyPI
esprima2Parses and tokenizes JavaScript code up to ECMA…
permissive · top 15,000 on PyPI
tree-sitter-cssProvides a CSS grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-pythonProvides a Python grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-jsonProvides a JSON grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI
pyjsparserParses JavaScript source code into an abstract…
permissive · top 15,000 on PyPI
lark-jsLark-js is a command-line tool that generates…
permissive · top 15,000 on PyPI