Output formats
alint check renders the same findings in eight output formats. Select one with --format <name>.
A single Report fans out to each format:
| Format | Aliases | For |
|---|---|---|
human | pretty, text | The default. Colorized, grouped by file, for reading in a terminal. |
json | Stable machine shape behind schema_version: 1. General-purpose integration. | |
sarif | SARIF 2.1.0, for GitHub code scanning and other SARIF consumers. | |
github | github-actions | GitHub Actions workflow commands (inline annotations on a run). |
markdown | md | GitHub-flavored Markdown, for posting as a PR comment. |
junit | junit-xml | JUnit XML, for CI test-report viewers. |
gitlab | gitlab-codequality, code-quality | GitLab Code Quality report. |
agent | agentic, ai | LLM-shaped JSON with a templated agent_instruction per violation. |
Each format is shown by example in the quickstart. The agent format has its own reference because its shape is purpose-built for AI coding agents.
Stable fingerprints
Section titled “Stable fingerprints”sarif and gitlab attach a stable per-finding fingerprint (SARIF partialFingerprints, GitLab fingerprint) to every run — not only when a --baseline is active. SARIF’s is the canonical violation_fingerprint, the same identity the baseline file records, so an alert keeps one identity across SARIF and the baseline. A finding with a unique fingerprint carries that same identity in GitLab too; GitLab additionally disambiguates genuine within-report duplicates (two findings with byte-identical content), because GitLab Code Quality drops entries that share a fingerprint. GitHub Code Scanning uses the SARIF fingerprint to correlate alerts across runs — dedupe, and track a finding as fixed or reopened — with no --baseline required.
Baseline suppression
Section titled “Baseline suppression”When a run is filtered through a baseline, suppression marks findings rather than deleting them, and only two formats surface those marks:
sarifcarriessuppressions: [{ "kind": "external" }]andbaselineState(unchangedfor suppressed,newfor live) on each result — so GitHub Code Scanning keeps grandfathered alerts open-but-dismissed instead of flapping fixed-then-reopened. (The stablepartialFingerprintsidentity is emitted on every run, baseline or not — see above.)jsonomits suppressed findings fromresultsand records asummary.baselined_suppressedcount in the envelope.
The other six formats receive the already-filtered live report and are baseline-oblivious. The global --show-baselined flag lists the suppressed findings in full, in any format; the exit code is gated on the live (new) findings only, in every format.