| Variable | Description | Values |
|---|---|---|
FALLOW_FORMAT | Default output format | human, json, sarif, compact, markdown, codeclimate, gitlab-codequality, pr-comment-github, pr-comment-gitlab, review-github, review-gitlab, badge |
FALLOW_QUIET | Suppress progress output | 1 or true |
FALLOW_BIN | Path to the fallow binary | Any valid path |
FALLOW_EXTENDS_TIMEOUT_SECS | Timeout for fetching URL extends | Seconds (default: 5) |
FALLOW_PRODUCTION | Global production-mode override for every analysis | true/false/1/0/yes/no/on/off |
FALLOW_PRODUCTION_DEAD_CODE | Per-analysis production override for dead-code (combined runs and fallow audit) | Same values as FALLOW_PRODUCTION |
FALLOW_PRODUCTION_HEALTH | Per-analysis production override for health | Same values as FALLOW_PRODUCTION |
FALLOW_PRODUCTION_DUPES | Per-analysis production override for duplication | Same values as FALLOW_PRODUCTION |
FALLOW_REVIEW_GUIDANCE | Add collapsed “What to do” blocks to review-github / review-gitlab inline comments | 1, true, yes, on |
FALLOW_SUMMARY_SCOPE | Sticky PR/MR summary scope for pr-comment-github / pr-comment-gitlab. all keeps project-level dependency/catalog/override findings outside the diff; diff applies the diff filter to those findings too. Inline review comments are unaffected | all (default), diff |
FALLOW_AUDIT_CACHE_MAX_AGE_DAYS | Max age of persistent reusable fallow audit base-snapshot worktree caches | Whole days (default 30; 0 disables) |
FALLOW_TELEMETRY | Opt-in telemetry mode, off by default (see what it collects) | off/on/inspect (plus 0/1/true/false/disabled/enabled/debug/log) |
FALLOW_TELEMETRY_DISABLED | Admin/fleet telemetry kill switch (top precedence) | 1, true, yes, on |
FALLOW_TELEMETRY_DEBUG | Forces inspect mode (outranks FALLOW_TELEMETRY) | 1, true, yes, on |
DO_NOT_TRACK | Honored as a top-precedence telemetry kill switch | 1, true, yes, on |
FALLOW_AGENT_SOURCE | Declare the calling agent for telemetry classification (never enables telemetry) | codex, claude_code, cursor, copilot, opencode, aider, roo, windsurf, gemini (aliases gemini_cli/antigravity), cline, continue, zed, goose, other_known, unknown, none |
FALLOW_FORMAT
Set the default output format so you don’t need to pass--format every time.
--format CLI flag takes precedence over FALLOW_FORMAT when both are set.
FALLOW_QUIET
Suppress progress bars and status messages. Useful in CI environments or when piping output.--quiet on every command.
FALLOW_BIN
Path to the fallow binary. Used by the MCP server (fallow-mcp) to locate the fallow CLI.
fallow on PATH when not set.
FALLOW_EXTENDS_TIMEOUT_SECS
Timeout in seconds for fetching remote configs viahttps:// URLs in the extends field.
5 seconds when not set.
FALLOW_CACHE_MAX_SIZE
Maximum on-disk extraction cache (.fallow/cache.bin) size in megabytes. Wins over the cache.maxSizeMb config field when both are set.
256 (MB) when not set. The cache triggers LRU eviction when its serialized size crosses 80% of the cap and evicts down to 60%. Intended for CI runners with disk quotas; local dev machines on full-size disks rarely need to touch this knob.
--no-cache disables the cache entirely; this env var is then irrelevant.
FALLOW_AUDIT_CACHE_MAX_AGE_DAYS
Maximum age (in whole days, since last reuse or fresh create) of a persistent reusablefallow audit base-snapshot worktree cache. Older entries are removed at the top of the next fallow audit invocation. Wins over the audit.cacheMaxAgeDays config field when both are set.
30 days when not set. Setting the value to 0 disables the GC entirely (escape hatch for CI runners that prune /tmp out-of-band). Invalid values (non-integer, negative) silently fall back to the config field / default; a typo in a runner env var does not fail audits.
The sweep runs once per fallow audit invocation, walks git-registered worktrees only (not raw /tmp content), and never removes a cache entry that another in-flight fallow audit is using (per-entry kernel flock(2) guard). On reclaim, fallow writes a single fallow: reclaimed N stale base-snapshot caches line to stderr (unless --quiet is set) so the disk-space recovery is observable.
FALLOW_PRODUCTION and per-analysis overrides
FALLOW_PRODUCTION mirrors the --production CLI flag and turns production mode on for every analysis. The per-analysis vars (FALLOW_PRODUCTION_DEAD_CODE, FALLOW_PRODUCTION_HEALTH, FALLOW_PRODUCTION_DUPES) target a single analysis when running bare combined mode (fallow with no subcommand) or fallow audit.
- CLI flags (
--production,--production-{dead-code,health,dupes}) - Per-analysis env var (
FALLOW_PRODUCTION_HEALTH, etc.) - Global env var (
FALLOW_PRODUCTION) - Config (
production: truelegacy form, orproduction: { health: true, ... }per-analysis form)
FALLOW_PRODUCTION=false FALLOW_PRODUCTION_HEALTH=true runs health in production mode and the other analyses in non-production mode. Single-subcommand runs (e.g. fallow health) still respect FALLOW_PRODUCTION_HEALTH even though the per-analysis CLI flag is rejected with a subcommand: pass --production or set the per-analysis env var.
See also
MCP server
AI agent integration using the Model Context Protocol.
fallow dead-code
Full CLI reference including all output format options.