Installation
Graph-sitter runs as a single command with uvx — no global install or project setup required.
We currently support:
- Python 3.12 - 3.13 (recommended: Python 3.13+)
- macOS and Linux (x86_64 and aarch64 with glibc 2.34+); Windows via WSL
- Python, TypeScript, JavaScript, and React codebases
Prerequisites
Install uv if you don't already have it:
curl -LsSf https://astral.sh/uv/install.sh | shRun with uvx
uvx fetches and runs graph-sitter in an isolated environment, so there's nothing to install or keep up to date:
# Verify your environment
uvx --python 3.13 graph-sitter doctor --json
# Parse a repository into the codebase graph
uvx --python 3.13 graph-sitter parse . --language auto --backend auto --fallback python --format summaryUse --language typescript for TypeScript, JavaScript, and React repositories, or --language auto to let graph-sitter detect it.
Transform
Run a codemod in check mode, then write once the diff looks right:
uvx --python 3.13 graph-sitter transform ./codemods/rename.py:rename . --check
uvx --python 3.13 graph-sitter transform ./codemods/rename.py:rename . --writeRust backend (optional)
Python remains the authoring shell. The Rust backend is an opt-in compact parse/index backend for supported graph and codemod surfaces. Use strict Rust mode when unsupported behavior should fail loudly:
uvx --python 3.13 graph-sitter parse . --language python --backend rust --fallback error --format jsonTo validate a branch-built Rust wheel before a release, point uvx at the wheel artifact:
uvx --python 3.13 --from dist/<wheel>.whl graph-sitter parse . --language python --backend rust --fallback error --format jsonSee uvx workflows for parse, run, transform, --subdir, and release-gate examples.
Troubleshooting
- UV error related to
[[ packages ]]: you're likely on an outdated UV. Update withuv self update. RecursionError: maximum recursion depth exceededwhile parsing: upgrade to Python 3.13, or raise the limit withsys.setrecursionlimit(10000).
For more help, check the FAQ.