> ## 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.

# fallow suppressions

> CLI reference for fallow suppressions. A read-only inventory of every active fallow-ignore marker, grouped per file with kind, level, and reason, plus project totals and a stale cross-reference.

List every active `fallow-ignore-next-line` and `fallow-ignore-file` marker in the analyzed files, grouped per file with line, kind, level, and reason, plus project totals and a stale count cross-referenced against this run's stale-suppression findings. A governance surface, not a detector: it always exits 0.

Teams governing tech debt (and agents that should distrust a "clean" verdict) previously had to grep for `fallow-ignore` by hand; every full run materialized this information without exposing it.

```bash theme={null}
fallow suppressions
```

```text theme={null}
● Suppression inventory (1)
  src/util.ts
    :1 unused-export (file-wide) reason: legacy surface for the v2 SDK migration window

● Totals by kind
  unused-export: 1
```

Markers declare a reason with a `--` separator; the inventory reports markers without one so reason coverage is enforceable:

```typescript theme={null}
// fallow-ignore-file unused-export -- legacy surface for the v2 SDK migration window
```

## Options

| Flag                         | Description                                                 |
| :--------------------------- | :---------------------------------------------------------- |
| `--file <PATH>`              | Only list suppressions in the specified files. Repeatable.  |
| `-w, --workspace <PATTERNS>` | Scope to one or more workspace packages                     |
| `--changed-workspaces <REF>` | Scope to workspaces containing any file changed since `REF` |
| `--changed-since <REF>`      | Scope to files changed since a git ref                      |
| `-f, --format <FORMAT>`      | `human` (default) or `json`                                 |
| `-r, --root <ROOT>`          | Project root directory                                      |
| `-q, --quiet`                | Suppress progress output on stderr                          |

## JSON output

`--format json` emits the `suppression-inventory` envelope (schema version 1). Blanket markers (no kind, suppressing everything) carry `kind: null`; human output reads "blanket".

```json theme={null}
{
  "kind": "suppression-inventory",
  "schema_version": "1",
  "summary": {
    "total": 1,
    "files": 1,
    "without_reason": 0,
    "stale": 0,
    "by_kind": [
      { "kind": "unused-export", "count": 1 }
    ]
  },
  "files": [
    {
      "path": "src/util.ts",
      "suppressions": [
        {
          "line": 1,
          "kind": "unused-export",
          "level": "file",
          "origin": "comment",
          "reason": "legacy surface for the v2 SDK migration window",
          "reason_present": true
        }
      ]
    }
  ]
}
```

The `stale` count is a cross-reference (a join against this run's [stale-suppression findings](/analysis/dead-code#stale-suppressions)), not a new detection: a marker is stale when it no longer matches any issue.

## MCP tool

Agents on the MCP surface reach the same inventory through the `list_suppressions` tool, which returns this envelope verbatim. It runs a full analysis, so raise `FALLOW_TIMEOUT_SECS` on large repositories. See [MCP integration](/integrations/mcp).

## See also

<CardGroup cols={2}>
  <Card title="Suppression comments" icon="comment-slash" href="/configuration/rules">
    Inline suppression syntax and rule severities
  </Card>

  <Card title="Global flags" icon="sliders" href="/cli/global-flags">
    Flags available on all commands
  </Card>
</CardGroup>
