tree-sitter · wasm · zero-config

Catch breaking API
changes before they ship.

Parses both sides of a git diff into ASTs, classifies every structural change, and traces call sites to show you exactly what breaks. TypeScript, Go, Python, Java, Rust — Say goodbye to PR merge headaches.

Get Started
diff-guardian — Terminal
$ npx dg compare main feature/payments
 
Diff-Guardian API Analysis
Base: main → Head: feature/payments
 
[BREAKING] Changes (2)
 
► processPayment (signature_change)
src/api/payments.ts:42
R01: Parameter 'currency' was removed.
Affected call sites (3):
X src/checkout/handler.ts:18 — provides 3 arg(s), needs 2
OK src/invoices/gen.ts:31 — Fixed by developer in this PR
✓ 1 other call site(s) have correct arguments
 
► UserConfig (interface_property_removed)
src/types/config.ts:8
R26: Property 'timeout' was removed from interface.
 
────────────────────────────────────────
[STRICT MODE]
2 breaking changes found. Exiting with code 1.

Tree-Sitter AST Parsing

WASM-compiled grammars parse your old and new source into structured signatures — functions, interfaces, enums, and type aliases.

Lazy Graph Engine

Signature caching and on-demand tracing — only breaking changes trigger call-site resolution. No wasted compute.

CI/CD & IDE Ready

Ships with GitHub Actions workflows, pre-push git hooks, and PR comment reports. Works in your terminal, your editor, and your pipeline.

One tool for your
entire stack.

Each language has a dedicated translator module built on Tree-Sitter queries. Add a grammar, write a translator — the engine handles the rest.

TypeScript
.ts .tsx
JavaScript
.js .jsx
Python
.py
Go
.go
Java
.java
Rust
.rs