meow.config.json is the one human-edited config for a meow project. It replaces
the usual scatter of .eslintrc, .prettierrc, tsconfig.json, and test configs.
Everything in it is runtime/toolchain behavior — dependencies, scripts, and
workspaces live in your package.json.
meow.config.json
The config is a closed schema: unknown keys are a parse error, not a silent
ignore. A typo’d key is caught immediately rather
than quietly doing nothing. Keys use
camelCase. Every key has a default, so the
minimal config is {}.Full schema
meow.config.json
Key reference
The runtime mode.
strict-web is a deterministic, web-standard
sandbox; node-compat (and the legacy alias) expose the full Node surface with
host access. This is the key behavioral switch and is read on every run.Sets
strict in the generated .meow/tsconfig.json. Run meow sync after
changing it. Drives meow check and your editor’s types.Per-rule severities for
meow lint, keyed by rule id. Each
value is "off", "warn", or "error".The formatter style. meow ships one opinionated style — there are no formatting
knobs.
How TypeScript is handled for execution. meow strips types in place; this is the
only meaningful value.
Glob roots for a monorepo, e.g.
["apps/*", "packages/*"].The intended install projection.
Test-runner defaults. Today
meow test always runs each suite
in a deterministic isolate; these keys are accepted and forward-looking.Per-package capability grants (
default is a string array; packages maps a
package name to a string array). Accepted and reserved; not yet enforced — see
the permissions scope note.What’s active today
Some keys change behavior right now; others are part of the closed schema but forward-looking. The config validates either way.| Key | Status |
|---|---|
mode | ✅ Active — read on every run |
types.strict | ✅ Active — drives the shadow tsconfig + meow check |
lint.rules | ✅ Active — rule severities for meow lint |
format.style | ✅ Active — single supported value |
runtime.typescript | ✅ Active — single supported value (strip) |
workspace.packages | 🔜 Accepted — monorepo support evolving |
install.mode | 🔜 Accepted — install layout set by CLI flags today |
test.* | 🔜 Accepted — runner is deterministic-isolate today |
permissions.* | 🔜 Accepted — not yet enforced |
package.json reference
Dependencies, scripts, overrides, and workspaces.