Skip to main content
This page gets you from zero to a useful result fast. Everyone starts the same way. Branch off at the end.

1. Run Fallow

From your project root:
That runs three analyses in one pass:
  • Dead code: unused files, exports, dependencies, cycles, boundaries, and more
  • Duplication: repeated logic across files
  • Health: complexity hotspots and refactor targets
Built-in plugins cover Next.js, Vite, Ember, Wuchale, Jest, Tailwind, PandaCSS, Contentlayer, tap, tsd, and more. No configuration needed for the first run.

2. Run the focused commands you’ll use most

3. Understand the output

Dead code

Use this when you want cleanup candidates.
Reports unused files, exports, types, dependencies, circular deps, and boundary violations. See the dead code guide.

Duplication

Use this when repeated logic is spreading.
Default mild mode catches AST-based duplicates. Add --mode semantic to also catch clones with renamed variables. See the duplication guide.

Health

Use this when you want to prioritize refactors.
Reports complexity findings, per-file maintainability, hotspots, and ranked refactor targets. See the health explanation.

Fix preview

Use this before deleting anything automatically.
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.

4. Pick your next step

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.

Use it in VS Code

Real-time diagnostics, Code Lens above exports, and one-click fixes.

Use it in CI

Turn Fallow into a PR and merge gate with SARIF or MR annotations.

Use it from agents

Add MCP for structured tool calling from Claude Code, Cursor, and more.

Add runtime evidence

Layer production execution data into fallow health.

Optional: create a config

Fallow works without a config file. When you want to customize, run:
This auto-detects your project structure and generates a tailored config. It also adds .fallow/ to your .gitignore.
Migrating from knip or jscpd? Run fallow migrate, or see the knip or jscpd guides.

Optional: runtime intelligence

Fallow’s static layer is free and open source. If you want to know what actually executed in production, add the runtime layer:
Before you do that, read Static vs runtime intelligence for the mental model, then the runtime coverage guide for setup details.

Optional: workflow-specific setup

Agents

Any agent that can run a shell command can use Fallow. Use --format json for structured output:
If your agent supports MCP, add structured tool calling:
This assumes fallow-mcp is on your PATH. If fallow is a project devDependency, the binary lives in node_modules/.bin/ instead, so launch it through your package manager: set "command": "npx" with "args": ["fallow-mcp"] (or pnpm exec / yarn / bunx). See the MCP integration guide.

Humans

Install the VS Code extension for real-time diagnostics, Code Lens above exports, and one-click fixes:
See the VS Code integration guide.

CI

Use the GitHub Action, the GitLab template, or npx fallow --ci on any CI:
See the CI integration guide.

Next steps

Analysis overview

What Fallow analyzes, at a glance.

Configuration

Customize entry points, rules, and ignore patterns.

Explanations

Mental models for how Fallow works.

CLI reference

Every command and flag.