A Rust CLI that recursively scans Git repos, captures state changes, generates diffs, extracts code elements, and produces security-focused reports — all in one command.
When you manage dozens of Git repositories, keeping track of what changed, what's security-relevant, and generating reviews manually is an endless chore.
Running git pull && git diff across 30 repos by hand wastes hours and misses things.
Security issues like hardcoded secrets or SQL injections scattered across repos go unnoticed.
Raw patches are hard to read, impossible to pipe into CI/CD, and don't highlight what matters.
Code auditors need to manually identify which changed functions touch crypto, auth, or secrets.
Recursive repo scanning
Safe state capture
N vs N-1 unified diff
Functions, types, imports
Security pattern match
JSON / MD / SARIF
Auto-find all Git repos in any directory tree. Configurable filters, depth limits, symlink following.
--nested --follow-symlinksN vs N-1 diffs with historical depth config. Full unified patch files + file manifests per repo.
--history-depth 5Identifies functions, structs, classes, imports + more across 10+ languages with full snippets.
10+ languages18 built-in patterns: crypto, auth, secrets, SQL injection, XSS, path traversal, and more.
18 built-in tagsJSON, Markdown, plain text, and SARIF 2.1.0 output. Cross-repo security aggregation built-in.
SARIF · JSON · MDConfigurable thread pool, LRU caching, incremental mode — blazing fast even at scale.
-j 8 --incrementalDiff any two refs without touching the working tree. Perfect for PR reviews before merging.
--diff main..featureExtend security patterns and element extractors via JSON plugins without touching source.
--security-plugin-fileDrop a .diffcatcher.toml in your project. CLI flags always override config values.
DiffCatcher extracts the complete before/after source of every changed function — boundaries detected, context preserved. Security-tagged elements are flagged immediately.
Every changed element is automatically checked against built-in security patterns. Custom plugins let you add domain-specific rules.
Rust + Git is all you need. No runtime dependencies.
DiffCatcher is free and open source. If it saves you time on code reviews or security audits, consider supporting ongoing development and new features.
ETH & ERC-20 tokens accepted · View on Etherscan ↗