fallow-rs/fallow
Codebase intelligence for TypeScript and JavaScript. Health, complexity hotspots, duplication, architecture boundaries, circular dependencies, design-system drift, and unused code, from one graph. CLI, GitHub Action, LSP, MCP, and VS Code. Rust, MIT licensed.
What it solves
Keeping a large TypeScript or JavaScript codebase healthy is hard: complexity creeps in, code gets duplicated, unused exports pile up, and architecture drifts. Manually reviewing every change is slow and inconsistent. fallow gives teams a fast, deterministic way to see these problems and to block new ones from entering a pull request.
How it works
fallow builds a graph of your repository: modules, exports, dependencies, functions, and styling tokens. It then runs analyses on that graph to find complexity hotspots, circular dependencies, duplicated code, unused files and exports, styling drift, and more. The analyzer is written in Rust and uses the Oxc parser, so it needs no TypeScript compiler and no Node.js runtime—just one binary. You run it with a single command like npx fallow, and it works out of the box with over 100 built-in framework plugins.
For pull requests, fallow audit compares the changed files against the base branch and only fails on findings introduced by the change. Existing findings are excluded, so you can adopt fallow on a legacy codebase without fixing everything first. Optional features like type-aware analysis, runtime coverage, and mutation testing add deeper checks.
Who it’s for
Teams working on TypeScript or JavaScript projects who want to keep code quality high without heavy configuration. It suits developers who want a quick health check in the terminal, CI systems that need a pull-request gate, editors that show in-file diagnostics, and coding agents that need structured feedback. It also helps teams adopting static analysis on existing codebases, with staged adoption and baseline support.
Highlights
- Single Rust binary, no TypeScript compiler or config required to start
- Detects complexity, duplication, dead code, architecture drift, styling issues, and more
fallow auditgates pull requests on findings introduced by the change- Runs in terminal, CI (GitHub Actions, GitLab), editors (VS Code, LSP), and coding agents
- Fast: finds dead code in a 20,558-file monorepo in under 3 seconds
- Deterministic, no AI inside the analyzer; only opt-in
similar-codeuses a local model - Auto-fix for dead code, suppression comments, and migration from knip/jscpd/stylelint
Related
- Project
- Project
- Project
- Project
- Project