Thank you for your interest in contributing!
If you're using Claude Code, see CLAUDE.md — architecture, build/test commands, and cross-cutting invariants, plus deeper guides under .claude/skills/ (code-indexing-pipeline, analysis-subsystems, review-pr-against-issue). Cursor users get the same content via .cursor/rules/*.mdc, auto-loaded per file.
- Rust stable (via rustup)
cmake— required by the graph database- macOS:
brew install cmake - Linux:
sudo apt install cmake
- macOS:
cargo build --release -p infigraph-cli -p infigraph-mcpcargo test --allcargo fmt --all
cargo clippy --all-targets --all-features -- -D warningsBoth are enforced in CI. Please run them before pushing.
Tree-sitter path — add a tree-sitter-<lang> crate dependency and write two query files:
crates/infigraph-languages/languages/<lang>/entities.scm— symbolscrates/infigraph-languages/languages/<lang>/relations.scm— call edges, imports
Grammar plugin path — for languages without a tree-sitter grammar, write ANTLR .g4 grammars and a Java extractor. See GRAMMAR_PLUGINS.md for a full walkthrough.
- Fork the repo and create a branch from
main - Write tests for your change
- Ensure
cargo test --all,cargo fmt --all, andcargo clippyall pass - Submit a pull request — the template will guide you through the checklist
Open an issue using the bug report template.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 license.