> ## 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.

# Formatting

> Format source files from the Oxc code printer — fast, consistent, and CI-friendly.

`meow fmt` reprints your code using the Oxc code generator, working from the same
syntax tree the rest of the toolchain uses. One built-in style, no `.prettierrc`.

```bash theme={null}
meow fmt                   # format the project in place
meow fmt src/              # format specific paths
meow fmt --check           # report what would change; don't write
```

## Writing vs checking

<Tabs>
  <Tab title="Format in place (default)">
    ```bash theme={null}
    meow fmt
    ```

    Rewrites files that aren't already formatted and reports what changed:

    ```text theme={null}
    🐾 meow fmt: formatted files
    ```

    When nothing needs changing:

    ```text theme={null}
    🐾 meow fmt: no files changed
    ```
  </Tab>

  <Tab title="Check mode (CI)">
    ```bash theme={null}
    meow fmt --check
    ```

    Doesn't write anything. Exits **non-zero** if any file would change, so it gates
    a pull request on formatting:

    ```text theme={null}
    🐾 meow fmt: check passed
    ```
  </Tab>
</Tabs>

## Style

meow ships a single, opinionated format style — there are no formatting knobs to
bikeshed. It's selected by default in your config:

```json meow.config.json theme={null}
{
  "format": { "style": "meow" }
}
```

A file that fails to parse is reported as a diagnostic and skipped (meow won't
reprint code it couldn't fully understand), so a syntax error never corrupts a
file.

<Tip>
  Pair `meow fmt --check` with `meow lint` and `meow check` in CI for a complete,
  single-binary quality gate — no separate tool installs, no version drift between
  them.
</Tip>

<Card title="Bundle next" icon="box-archive" href="/toolchain/bundle">
  Roll your module graph into a single file.
</Card>
