Output Format
Token-efficient output format for AI agents
Agent Mode (default)
Grouped by file, then linter, then rule. Each rule line is L<line>,<line>,… rule/name — the L prefix marks the numbers as source line locations, never a finding count:
file.ts
linter
L<line>,<line>,<line> rule/nameThe L prefix exists because a bare number before a rule name (1312 noChildrenProp) reads as "1312 findings of this rule" when it is really "one finding, at line 1312". L1312 cannot be misread.
Example
apps/web/showcase.tsx
biome
L42,55,60,78,92,103 lint/suspicious/noExplicitAny
L1312 lint/correctness/noChildrenProp
eslint
L1184,1209,1215,1220,1225 @typescript-eslint/no-unsafe-call
oxlint
L800,804 eslint-plugin-react-perf(jsx-no-jsx-as-prop)
prettier
unformatted
sync.ts
oxlint
L37,66 eslint-plugin-unicorn(no-await-expression-member)Read the block above as: noExplicitAny at six lines (42, 55, …), noChildrenProp at one line (1312), and so on — the count of findings for a rule is how many L locations it lists, never the numbers themselves.
Rules
- Prints
okon success (exit 0) - Exit 1 on errors with grouped output
- Each rule's numbers are
L-prefixed source line locations, comma-joined; the finding count is how many are listed - Deduplication across linters (biome > oxlint > eslint priority)
- Prettier violations show as
unformatted(no line numbers) - sort-package-json violations show as
unsorted - Comment violations show as
deletable
Human Mode (--human)
Pass --human to get full verbose output from each linter:
lintmax check --human
lintmax fix --humanCLI Reference
lintmax fix # fix all, delete comments, prints `ok` on success
lintmax fix --human # fix all, show verbose output
lintmax check # compact error output
lintmax check --human # verbose output from each tool
lintmax rules # list all enabled rules (compact)
lintmax rules --human # list all enabled rules (table)