Reference

Output formats

Text for local work, JSON for scripts, SARIF for code scanning — three formats, each worth its weight.

Text

dollarlint found 8 issues (2 parsing, 6 validation) in 3 files after 180ms

invalid.json
  /      required  must have required property "enabled"
  /name  type      expected string, received number

fixture.json
  /      parse     parse fixture.json: multiple JSON values
    hint: This file contains content after the first JSON value; use .jsonl/.ndjson for line-delimited data, or exclude generated/test fixtures.

invalid.toml
  /enabled  type  expected boolean, received string

Summary: 8 discovered, 7 validated, 1 skipped, 8 issues (2 parsing, 6 validation) in 180ms

Text with locations

settings.json
  3:11  type      expected string, received number  /name
  4:12  minimum   must be >= 1   /count

Without --locations, the first column is the JSON Pointer location instead of a line and column.

Skipped Files

--show-skipped adds skipped-file groups to text output by reason, class, and coverage signal. Large low-signal groups such as fixtures, lockfiles, and data files are summarized with a sample and an omitted count so terminal output stays readable; JSON output keeps the full per-file list.

Issue Hints

Issue hints add curated context to recurring validation and parsing patterns without changing pass/fail behavior. The default auto mode prints actionable hints and groups repeated hint patterns in human output. Set --issue-hints off or output.issueHints = "off" for raw issues only, or use verbose to include rule IDs, confidence, and source links.

Quiet text

--quiet keeps successful text output to a single pass line. On failing runs, it still prints the headline and issue rows, but omits warnings, skipped files, and the summary block.

JSON

dollarlint validate . --format json

JSON output gives you the full accounting: run root, summary counts, numeric duration, per-file results, active issues, ignored issues, parsing hints, structured issue-hint metadata, warnings, schema locations, and source positions when available. The top-level $schema field declares the JSON Schema for the report, and formatVersion versions this machine-readable contract.

File and issue entries use path for the path relative to the validation root; local file schemas under that root are reported as relative paths while remote schemas remain URLs. Active findings live in issues; ignored findings live in ignoredIssues. Both arrays, plus warnings, are always present even when empty. Each issue includes a category of parsing, validation, schema, or coverage. The summary's issues object includes total, parsing, validation, schema, and coverage counts, and durationNanos is the stable numeric duration field.

Skipped file entries include skipReason, skipClass, skipImportance, and skipDetail when DollarLint can classify why a file was not validated. This separates low-value data or lockfile skips from higher-signal unsupported project configuration and external schema availability problems.

When an external catalog or remote schema cannot be compiled, DollarLint reports one grouped warning for the schema source and marks affected files as skipped instead of repeating a schema issue for every file that used the same broken external schema.

Files and issues produced from catalog inference may also include schemaMatch. This object records whether the catalog candidate was matched, ignored, skippedLowConfidence, or skippedMissingEvidence, the matched catalog pattern, confidence, a human-readable reason, and suggested config snippets such as [[schemas.associations]] or [[schemas.catalogs.ignore]].

Files and coverage issues for recognized config files without a usable built-in or catalog schema may include schemaGap. The gap names the config family, explains the current absence of schema support, and links to the tool documentation when DollarLint knows one.

Inspect

dollarlint inspect . --format json

Inspect output is a discovery and association report, not a validation report. It lists every discovered file, its associated schema or none, the association source, and a human-readable reason. Catalog-backed entries include schemaMatch and suggested config snippets so you can turn inferred matches into explicit associations or catalog ignore rules. Known unsupported configs include schemaGap metadata and documentation links.

Bundle

dollarlint validate . --format bundle --locations --show-skipped --output dollarlint.bundle.json

Bundle output captures the JSON result, SARIF result, and styled text output from one validation run. The top-level object has json, sarif, and styled keys; styled includes both ANSI and plain text so tools can inspect the same terminal experience a user would see. If styled skipped-file text was summarized, styled.truncated is true; the bundle's json result still contains the full skipped-file detail.

Branch errors

[output]
branchErrors = "best"

Schemas that use oneOf or anyOf can produce many mutually exclusive branch failures for one bad value. By default, DollarLint reports the closest matching branch so the issue list stays focused. Set output.branchErrors = "all" in .dollarlint.toml when you need every failed branch leaf for schema debugging or exact validator inspection.

SARIF

dollarlint validate . --format sarif --output dollarlint.sarif

SARIF output is built for GitHub code scanning and similar tools. SARIF is generated only when --format sarif is requested. Source locations are best-effort: when a precise range isn't available, DollarLint falls back to the nearest file or parent object.

Warnings

Warnings are separate from validation issues. For example, a catalog failure with schemas.catalogs.failure = "warn" appears as a warning while explicit and configured schemas continue validating.