Options
Output
Filtering
Scoping
Type-aware TypeScript evidence
See Type-aware TypeScript analysis for the safety
contract and the boundary with
tsc and Oxlint.
Incremental
Regression detection
Debugging flags
Debugging flags
These flags help you understand how fallow resolves your code and where time is spent.
Examples
Regression detection
Save a regression baseline on your main branch, then compare on subsequent runs (e.g., in PR checks) to prevent issue count from growing. Workflow:-
Save a regression baseline on
main:This writes issue counts to.fallow/regression-baseline.json(or a custom path). -
On each PR, compare against the baseline:
Exits with code 1 if the total issue count exceeds the baseline plus the configured tolerance.
-
Optionally set a tolerance to allow small fluctuations:
--fail-on-regression is used with --format json, the output includes an optional regression object:
Example output
$ fallow dead-code --format compact
--format json with the cycle’s structural shape:
$ fallow dead-code --format json (excerpt)
files is sorted lexicographically; the multi-node shape carries two or more entries, the self-loop shape exactly one. See explanations/dead-code#re-export-cycles for the structural rationale.
Grouped output
Use--group-by to partition issues by ownership or directory. This works with all output formats.
--format json, grouped output wraps the normal structure:
Fix suggestions in JSON output
When using--format json, every issue includes an actions array with machine-actionable fix and suppress hints. This lets agents and CI scripts programmatically decide how to resolve each finding.
Re-export findings include a warning note about public API surface impact. Dependency issues use
add-to-config suppress (not inline comments) with the concrete package name and config_key: "ignoreDependencies".Additional JSON fields
When using--format json, the output may include these additional top-level objects:
entry_points
Lists all resolved entry point files that root the module graph:
summary
When --summary is used, a summary counts object is included:
private_type_leaks is present in JSON output for schema stability, but the rule is off by default. It is populated only when enabled with --private-type-leaks or with private-type-leaks set to warn or error in configuration.
used_in_workspaces
Unused dependency findings can include used_in_workspaces when a package is unused in the declaring workspace but imported elsewhere in the monorepo:
baseline_deltas
When --baseline is used, a baseline_deltas object shows changes since the baseline:
Stale suppression detection
Fallow detects// fallow-ignore comments and /** @expected-unused */ JSDoc tags that no longer match any issue. This prevents suppression comments from accumulating after the underlying issues are resolved.
The
stale-suppressions rule defaults to warn. Promote to error for CI enforcement:
--format json, stale suppressions appear in the stale_suppressions array:
See also
Dead code analysis
How fallow detects dead code.
Rules configuration
Configure severity and thresholds per rule.
Production mode
Analyze only shipping code.