1. Scaffold a project
Initialize
meow init writes three files, generates the editor/TypeScript shims, and runs
an initial install:meow init defaults to strict-web mode — a deterministic, web-standard
sandbox. Building a Next.js/Vite app instead? Run meow init --mode node-compat
for the full Node.js surface. See Runtime modes.2. Add a dependency
meow installs straight from the npm registry, verifies integrity, and writes a strict, merge-friendly lockfile.main.ts
3. Write a test
Creategreet.test.ts. Test files import the matcher API from meow:test:
greet.test.ts
*.test.ts / *.spec.ts file and runs each in
its own isolated, deterministic V8 isolate:
4. Run the quality gate
Everything below shares the same parse of your code — no tool re-reads what another already parsed.You’re up
In four steps you ran TypeScript, served HTTP, installed and verified a package, and tested it — touching exactly two project files you’d actually edit (package.json and your source).
How the two modes work
strict-web vs node-compat, and when to reach for each.The omni-router
Why
meow build, meow ./script.ts, and meow some-cli all just work.Determinism by default
What “frozen clock, seeded RNG” means for your tests and CI.
Full CLI reference
Every command and flag.