| name | lintmesh |
| description | Run multiple linters (eslint, oxlint, tsc, biome) in parallel with unified JSON output. Use when linting code, checking for errors before commits, or debugging lint failures. Triggers on "lint", "check code", "run linters", or after editing JS/TS files. |
Lintmesh
Unified linter runner. One command, JSON output, all issues sorted by file:line.
Usage
lintmesh --quiet
lintmesh --quiet src/
lintmesh --quiet --linters eslint,oxlint
Always use --quiet to suppress stderr progress.
Output Schema
{
issues: Array<{
path: string;
line: number;
column: number;
severity: "error" | "warning" | "info";
ruleId: string;
message: string;
source: string;
fix?: {
replacements: Array<{ startOffset: number; endOffset: number; text: string }>;
};
}>;
summary: { total: number; errors: number; warnings: number; fixable: number };
linters: Array<{ name: string; success: boolean; error?: string }>;
}
Exit Codes
| Code | Meaning |
|---|
| 0 | No errors (warnings OK) |
| 1 | Errors found |
| 2 | Tool failure |
CLI Options
| Flag | Default | Purpose |
|---|
--linters <list> | eslint,oxlint,tsc | Which linters |
--fail-on <level> | error | Exit 1 threshold |
--timeout <ms> | 30000 | Per-linter timeout |
--quiet | false | No stderr |
Patterns
lintmesh --quiet | jq '.summary.errors'
lintmesh --quiet | jq -r '.issues[].path' | sort -u
lintmesh --quiet | jq '[.issues[] | select(.severity == "error")]'
lintmesh --quiet && echo "No errors"
When to Use
- After editing code: catch issues early
- Before committing: verify no regressions
- Debugging CI: reproduce locally with same format