Skip to main content
Some findings are correct and the code is still right. A console.log in a CLI entry point is the program’s output. A long function sometimes reads worse when split. An any at a boundary you do not control is the honest type. Inline suppressions silence one finding on one line, rather than switching the rule off for the whole project. The requirement is that you record why. Suppressions are free. The two configuration fields that let a team put limits on them are Pro.

Writing one

Put the comment on the line directly above:
Python uses #:
For a whole file, put iris-ignore-file anywhere in it:
The shape is the same either way:
One or more rule ids, then --, then a reason.

The reason isn’t optional

Leave the reason out, misspell the rule id, or name no rule at all, and the directive suppresses nothing. It gets reported as a Bare Ignore with its own score penalty instead.
This is deliberate. A suppression that costs nothing and explains nothing becomes a mute button rather than a decision, and months later there is no way to tell whether the any was reasoned about or simply inconvenient. Penalising an undocumented one keeps the mechanism meaningful.

What you can suppress

Eighteen rules, which is every finding that points at a specific line: Findings that aren’t about a line can’t be suppressed: file too long, too many functions, too many imports, and parse errors. Those always count.

What it does to your score

A suppressed finding stops costing points, since the score is recalculated after suppressions are applied. It does not disappear, though: it stays counted and listed in both the sidebar and CLI output, so a project accumulating suppressions is visibly doing so. A bare ignore does the opposite: it suppresses nothing and takes points off, 2 by default, adjustable in Scoring Weights.

Where you see them

File tab has a collapsible Suppressed section under Code Smells, with each rule, line and reason. Bare ignores show up as their own smell row. Workspace and Folder tabs show suppressed and bare counts plus the worst offending files. See all opens the full table for the last scan, filterable, with click-to-open. The CLI always prints the count. --show-suppressed lists them:
--format json includes a per-file suppressed array with the rule, line and reason.

Keeping a lid on it (Pro)

Two fields in .irisconfig.json:
The strict and security presets already set a cap (5 and 3 per file) and a heavier bare-ignore penalty (3 and 4). The other presets leave it unset, so there’s no limit until you set one.
Commit .irisconfig.json with gateMaxSuppressions set and the cap applies to everyone. Without it, a file can be brought under the gate by suppression rather than by fixing anything. See Gate thresholds.