Skip to main content
meow is standards-first: its baseline global surface is the web platform, not Node. These APIs are available in both strict-web and node-compat modes — the mode only changes whether the Node host surface is layered on top.

The committed global surface

These are typed for your editor automatically — meow sync writes .meow/strict-web.d.ts so the globals resolve with nothing installed.

Examples

Not present

meow is a runtime, never a browser. The DOM and browser-host globals are intentionally absent — window, document, localStorage, and WebSocket are not part of the surface. The generated type config pins lib: ["esnext"] so those names don’t leak into your editor either.

Crypto & determinism

In strict-web mode, crypto.getRandomValues() draws from the seeded RNG by default — deterministic across runs. crypto.subtle (hashing, signing, key derivation) is unaffected; it’s deterministic by nature. Grant real entropy with --allow-random when you need it.

Serving HTTP

The server side of the web platform — accepting requests and returning Response objects — is the meow:http built-in module:
Beyond the committed surface above, meow also exposes some web APIs transitively — structuredClone, atob/btoa, performance, EventTarget, and streams beyond fetch bodies are present but not yet a committed surface, so they aren’t declared in the strict-web types and may evolve. Build on the committed set for stability.

meow:http

The HTTP server module.

Node.js compatibility

When you need node:fs, process, and CommonJS.