Skip to main content

Variables meow reads

Set these to change meow’s behavior.
VariableEffect
MEOW_HOMERelocate the global ~/.meow tree (cache, bin, global installs). Child runtimes inherit it.
MEOW_DANGEROUSLY_DISABLE_SECURITY=1 grants full host access on every run — equivalent to --trust.
MEOW_NO_SHIM=1 makes the node/npm/… shims exec the real system binary instead of re-entering meow.
MEOW_METADATA_MAX_AGE_SECSFreshness window (seconds) for cached registry metadata. Default 300. 0 always revalidates; a large value stays effectively offline.
MEOW_INSTALL_TRACEWhen set, prints per-phase install timings (resolve, lockfile, materialize) to stderr.
MEOW_TSCPath to a specific tsc binary for meow types (the contributor type-gen command).
NODE_OPTIONSmeow reads --max-old-space-size=<MiB> from it, for drop-in compatibility.

Terminal & output control

The UI engine resolves its rendering from standard terminal signals — so meow plays well with CI and pipelines automatically.
VariableEffect
NO_COLORDisable all color.
FORCE_COLORForce color depth (0 off, 1/2/3 for 16/256/truecolor).
CLICOLOR_FORCENon-0 forces color even when not a TTY.
CIWhen set, meow assumes a non-interactive environment (no animations).
TERM, COLORTERM, TERM_PROGRAMDetect color/Unicode capabilities.
COLUMNSWidth hint for layout.
LANG, LC_ALL, LC_CTYPEUTF-8 detection for glyphs.
In a pipe or CI, meow drops spinners, animations, and ANSI automatically — output stays clean and greppable. You rarely need to set these by hand.

Variables meow sets

When meow runs your code, it injects a few variables so Node-style tooling finds its bearings:
VariableValue
MEOW_NODE_SHIM1 while running through meow, so re-entrant node calls route correctly.
MEOW_EXEC_PATHPath to the meow binary.
MEOW_NODE_PLATFORM / MEOW_NODE_ARCHNormalized platform/arch (darwin/win32/linux, arm64/x64).
NODE / npm_node_execpathPath to the shimmed node, so tools spawn “the current Node” back into meow.
INIT_CWDThe directory a package.json script was invoked from.
npm_lifecycle_event / npm_lifecycle_scriptThe script name and body, npm-style.
npm_package_jsonAbsolute path to the project package.json.
For deterministic runs, meow also pins TZ=UTC and a fixed locale before creating the isolate — see Determinism.

How process.env behaves

process.env exists only in node-compat (there is no process global in strict-web at all). What it contains depends on your grant:
process.env is populated from the full host environment, like Node.
meow run app.ts          # process.env has everything
Narrow it for a more reproducible run:
meow run app.ts --allow-env=API_BASE,LOG_LEVEL

Permissions & trust

The full grant model for env, clock, and randomness.