This page gets you from zero to a useful result fast. Everyone starts the same way. Branch off at the end.
From your project root:
npx fallow
That runs three analyses in one pass:
Built-in plugins cover Next.js, Vite, Ember, Wuchale, Jest, Tailwind, PandaCSS, Contentlayer, tap, tsd, and more. No configuration needed for the first run.
npx fallow dead-code # Cleanup candidates
npx fallow dupes # Repeated logic
npx fallow health # Complexity and refactor targets
npx fallow review # Advisory review brief over changed files (always exits 0)
npx fallow fix --dry-run # Preview automatic cleanup
dead-code reports unused files, exports, types, dependencies, circular deps, and boundary violations. See the dead code guide.dupes catches AST-based duplicates in the default mild mode. Add --mode semantic to also catch clones with renamed variables. See the duplication guide.health reports complexity findings, per-file maintainability, hotspots, and ranked refactor targets. See the health explanation.fix --dry-run previews automatic cleanup. When you're ready, drop --dry-run. See the auto-fix guide.Cleaning up or refactoring TypeScript? Add --type-aware when aliases,
re-exports, class contracts, packages, or exact consumers affect the
decision. This is an optional, slower semantic pass. See
Type-aware TypeScript analysis.
Existing repo with backlog? Read Adopt Fallow in an existing repo for a structured cleanup path, then come back here to wire up CI or VS Code.
Real-time diagnostics, Code Lens above exports, and one-click fixes.
Turn Fallow into a PR and merge gate with SARIF or MR annotations.
Add MCP for structured tool calling from Claude Code, Cursor, and more.
Layer production execution data into fallow health.
Fallow works without a config file. When you want to customize, run:
fallow init
This auto-detects your project structure and generates a tailored config. It also adds .fallow/ to your .gitignore.
{
"$schema": "https://raw.githubusercontent.com/fallow-rs/fallow/main/schema.json",
"entry": ["src/workers/*.ts", "scripts/*.ts"],
"ignorePatterns": ["**/*.generated.ts"],
"rules": {
"unused-files": "error",
"unused-exports": "warn",
"unused-types": "off"
}
}Fallow's static layer is free and open source. If you want to know what actually executed in production, add the runtime layer:
npx fallow license activate --trial --email [email protected]
npx fallow coverage setup
npx fallow health --runtime-coverage ./coverage
Before you do that, read Static vs runtime intelligence for the mental model, then the runtime coverage guide for setup details.