Detect feature flag patterns in your codebase. Fallow identifies environment variable flags (Documentation Index
Fetch the complete documentation index at: https://docs.fallow.tools/llms.txt
Use this file to discover all available pages before exploring further.
process.env.FEATURE_*), SDK calls (LaunchDarkly, Statsig, Unleash, GrowthBook), and config object patterns (opt-in). Reports flag locations, detection confidence, and cross-references with dead code findings.
Options
Output
| Flag | Description |
|---|---|
--top <N> | Show only the top N flags |
-f, --format <FORMAT> | Output format: human (default), json, sarif, compact, markdown, codeclimate, gitlab-codequality, pr-comment-github, pr-comment-gitlab, review-github, review-gitlab |
-q, --quiet | Suppress progress output |
--explain | Add metric explanations. In JSON format, adds a _meta object with descriptions and docs links. |
--summary | Print a one-line summary of flag counts at the end of the run. In JSON format, adds a summary counts object. |
Scoping
| Flag | Description |
|---|---|
-r, --root <PATH> | Project root directory (default: current working directory) |
-c, --config <PATH> | Path to config file (default: auto-detected) |
-w, --workspace <NAME> | Scope output to a single workspace package |
--changed-since <REF> | Only report flags in files changed since a git ref |
--production | Production mode: exclude test/story/dev files |
Performance
| Flag | Description |
|---|---|
--no-cache | Disable incremental caching (force full re-parse) |
--threads <N> | Number of parser threads (default: available parallelism) |
--performance | Show pipeline timing breakdown |
CI
| Flag | Description |
|---|---|
--ci | CI mode: equivalent to --format sarif --fail-on-issues --quiet |
--fail-on-issues | Exit with code 1 if flags are found |
--sarif-file <PATH> | Write SARIF output to a file (in addition to --format) |
--group-by <MODE> | Group output by owner (CODEOWNERS), directory (first path component), package (workspace package), or section (GitLab CODEOWNERS [Section] headers). See global flags. |
Regression
| Flag | Description |
|---|---|
--baseline <PATH> | Compare against a previously saved baseline file |
--save-baseline <PATH> | Save current results as a baseline file |
--fail-on-regression | Fail if flag count increased beyond tolerance vs a regression baseline |
--tolerance <N> | Allowed increase: "2%" (percentage) or "5" (absolute). Default: "0" |
--regression-baseline <PATH> | Path to regression baseline file (default: .fallow/regression-baseline.json) |
--save-regression-baseline <PATH> | Save current flag counts as a regression baseline |
Detection categories
Fallow detects three categories of feature flag patterns:| Category | What it finds | Examples |
|---|---|---|
| Environment variable flags | process.env.* checks used as feature gates | process.env.FEATURE_NEW_UI, process.env.ENABLE_DARK_MODE |
| SDK calls | Feature flag SDK method calls from known providers | LaunchDarkly variation(), Statsig checkGate(), Unleash isEnabled(), GrowthBook isOn() |
| Config object patterns | Object property lookups used as boolean guards (opt-in) | config.featureX, settings.enableNewFlow |
Examples
JSON output
$ fallow flags --format json
Key fields
| Field | Type | Description |
|---|---|---|
schema_version | integer | JSON schema version (currently 3) |
version | string | Fallow version that produced the output |
elapsed_ms | integer | Analysis duration in milliseconds |
feature_flags | array | Detected feature flag patterns |
total_flags | integer | Total number of detected flags |
MCP tool
Thefeature_flags MCP tool wraps fallow flags --format json --quiet --explain:
Example request
_meta explanatory metadata (the MCP wrapper enables --explain by default). Returns the same JSON envelope as the CLI.
See MCP integration for setup instructions.
See also
Dead code analysis
Cross-references feature flags with dead code findings.
Global flags
Flags available on every fallow command.
MCP integration
Use fallow tools from AI coding agents.