Skip to main content
meow ships verbs for answering the questions every real project eventually asks: why is this package here, what’s bloating my install, why is startup slow, and is my environment healthy?

why-dep — dependency provenance

Trace exactly how a package ended up in your tree. meow reads meow.lock.jsonl and prints every chain from a direct dependency down to the target.
It exits non-zero if the package isn’t in the tree — handy in scripts that assert a dependency is (or isn’t) present.

why-large — what’s heavy

List the packages in your lockfile by their cached tarball size, so you can see what’s actually costing you.

why-slow — cold-start timing

Report process-init timing and, given a target, basic module + lockfile stats — a quick read on cold-start drag.

doctor — environment health

A one-glance check of your project and global state: package.json, lockfile, node_modules, and the cache.
Run it first whenever something feels off — a missing lockfile or unmaterialized node_modules shows up immediately.

ls — active dev servers

List dev servers currently listening, with friendly labels for well-known ports.
meow recognizes common ports out of the box — Next.js/React (3000), Astro (4321), Vite (5173) and Vite Preview (4173), Tauri (1420), Wrangler (8787), and more.
meow ls discovers listeners via lsof, so it’s available on macOS and Linux where lsof is present.

Configuration reference

Every key in meow.config.json.