Skip to main content
Running a .ts file strips types without checking them — that keeps execution fast. When you want the full type-checker, run meow check.

How it works

meow check delegates to the real TypeScript compiler (tsc) over the generated shadow config, then parses its output and re-renders it as meow diagnostics — so you get tsc’s correctness with meow’s presentation.
1

It needs the shadow config

meow check reads .meow/tsconfig.json. If it’s missing, meow tells you to generate it:
meow init runs meow sync for you; otherwise run it once (and after any meow.config.json change). See the shadow config.
2

It resolves tsc through meow x

meow runs tsc via its own meow x — using your locally installed TypeScript if you’ve added it, or fetching it ephemerally if not. There’s no node_modules/.bin or $PATH hunt; the package graph resolves the binary.
3

It renders the results

tsc runs with --noEmit over the shadow config; meow parses each file(line,col): error TS####: message and frames it with a code snippet and a caret.

Output

A clean run:
An error, framed as a diagnostic with the offending line and a caret:
meow check exits non-zero when there are type errors, so it drops straight into CI and pre-commit hooks.

The generated config

The shadow .meow/tsconfig.json sets a strict-web-correct baseline so your editor and meow check agree:
strict follows types.strict in your meow.config.json. The meow:* modules and strict-web globals are wired in automatically, so import { serve } from "meow:http" type-checks with nothing installed.

Lint next

Static analysis over the same shared syntax tree.