Skip to main content
Iris analyses every supported file automatically as you open or save it. The File tab in the Iris sidebar gives you an instant, line-level picture of that file’s health — from an overall score and complexity rating down to individual code smells, TypeScript-specific quality signals, and detected secrets — so you know exactly what needs attention before you push.

The File Tab

The File tab opens with an enforcement snapshot: a top-of-file readiness summary that shows the score, any blockers, the hook posture, and the trend direction at a glance. Below that you’ll find the full breakdown:
Panel elementWhat it shows
Health scoreA 0–100 composite score penalising warnings, secrets, deep nesting, long functions, and debug prints
Trend signalScore movement (↑/↓) versus the previous snapshot, once trend history exists
Language badgeGo / TypeScript / JavaScript / Python badge in the file header
Line countsTotal lines, blank lines, and code lines
Complexity scoreA 1–10 score based on function density, nesting depth, control flow, and import count
Function listEvery detected function with its line number — click any entry to jump straight to that line in the editor
Code smellsTODOs, unused code, magic numbers, debug prints, and long parameter lists grouped in one section
Coverage signalWhether a matching test file was detected (configurable via testConvention in .irisconfig.json)

TypeScript Metrics

Iris surfaces four TypeScript-specific quality signals when you are working in a .ts or .tsx (or .js/.jsx) file. These metrics are hidden automatically for Go and Python — they only appear when the active file is TypeScript or JavaScript.
MetricWhat it tracks
any usagesCounts explicit : any and as any — each occurrence is clickable to jump to the line
@ts-ignoreCount of TypeScript suppression comments in the file
Non-null assertionsCount of ! (non-null assertion) usages
Missing return typesExported functions without an explicit return type annotation

Code Smells

Iris detects several code smell patterns across all supported languages. Every finding is clickable to jump to the exact line.
SmellDetected inToggle setting
Debug prints — console.log, console.warn, console.errorJavaScript / TypeScriptenableConsoleLogWarnings
Debug prints — fmt.Print*, log.Print*, log.Fatal*, log.Panic*GoenableConsoleLogWarnings
Debug prints — print()PythonenableConsoleLogWarnings
Magic numbers — raw numeric literals (excluding 0 and 1) used inline without a named bindingAll supported languagesenableMagicNumberDetection
TODOs / FIXMEs / HACKs — from // comments (JS/TS, Go) and # comments (Python)All supported languagesenableTodoDetection
Long parameter lists — functions with more parameters than the configured thresholdAll supported languagesenableLongParamDetection
Unused variables — declared but never referenced elsewhere in the fileAll supported languagesenableUnusedDetection
Unused functions — defined but never called within the file and not exportedAll supported languagesenableUnusedDetection
Disabling a toggle hides both the stat counter and the detail section from the sidebar entirely — useful for reducing visual clutter when a particular smell isn’t relevant to your project.

Warnings

Iris raises five warning types when a file crosses a configured threshold. You can set each threshold in .irisconfig.json and override the severity independently.
TypeDefault severityTriggers at
file-too-longerror / warning> threshold (error) or > ⅔ of threshold (warning)
function-too-longerror / warning> 2× threshold (error) or > threshold (warning)
too-many-functionswarning> maxFunctionsPerFile
too-many-importswarning> maxImportsPerFile
no-exportsinfoNo exported identifier found in the file
Override the severity for any individual warning type using the severityOverrides key in .irisconfig.json. For example, you can promote no-exports from info to warning or demote file-too-long from error to warning for a specific project.
Unused import detection is TypeScript and JavaScript only. Go and Python handle unused imports at the compiler or runtime level, so Iris does not surface them as code smells in those languages.