> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meow.style/llms.txt
> Use this file to discover all available pages before exploring further.

# Linting

> Fast static analysis over the shared Oxc syntax tree — no separate parse, no plugin install.

`meow lint` analyzes your source for syntax and semantic problems over the **same
Oxc syntax tree** the runtime and formatter use. There's no second parser to warm
up and no ESLint config to assemble.

```bash theme={null}
meow lint                  # lint the project
meow lint src/             # lint specific paths
```

## What it checks

For each file, meow builds the concrete syntax tree and the semantic graph (scopes,
bindings, references) and surfaces:

* **Parse errors** — malformed syntax, caught with precise spans.
* **Semantic errors** — problems that need scope/binding analysis.
* **Starter lints** — a baseline set of correctness checks.

Every finding is rendered as a structured diagnostic with the offending line and a
caret marker:

```text theme={null}
  warning  src/util.ts
  8 │ const value = =;
    │               ^ expected an expression
✗ meow lint
```

A clean run is quiet and green:

```text theme={null}
🐾 meow lint: no diagnostics
```

`meow lint` exits non-zero when there are findings, so it gates CI cleanly.

## Configuring rules

Rule severities live in your one config file, keyed by rule id:

```json meow.config.json theme={null}
{
  "lint": {
    "rules": {
      "no-debugger": "error",
      "no-unused-vars": "warn",
      "some-rule": "off"
    }
  }
}
```

Each value is `"error"`, `"warn"`, or `"off"`. See the
[configuration reference](/configuration/meow-config#lint).

<Note>
  Linting reuses the workspace's single parse. Running `meow lint`, `meow fmt`, and
  `meow check` doesn't parse your code three times — they draw from the same
  in-memory graph. That's the [parse-once pipeline](/concepts/architecture#the-parse-once-pipeline)
  in practice.
</Note>

<Card title="Format next" icon="align-left" href="/toolchain/format">
  Reprint your code from the same tree.
</Card>
