Skip to main content
meow ships as a single self-contained binary. There is no runtime to install alongside it, no node_modules for the tool itself, and no global package graph to manage. You install one file and you have the runtime, package manager, and toolchain.

Install script

The fastest path on macOS and Linux:
curl -fsSL https://meow.style/install | sh
This drops the meow binary into ~/.meow/bin and adds it to your PATH. Open a new shell afterwards (or source your profile) so the updated PATH takes effect.
The first time you run meow run or meow install, meow also writes drop-in shims for node, npm, pnpm, yarn, bun, npx, pnpx, and bunx into ~/.meow/bin. That’s what lets framework tooling that shells out to node transparently re-enter meow. See Node.js compatibility.

Build from source

meow is a Rust workspace. If you have a stable Rust toolchain you can always build the binary yourself — this is the canonical, always-works path.
1

Install Rust (stable, 1.85+)

Use rustup. meow pins the stable channel with clippy and rustfmt.
2

Install system build dependencies (Linux only)

The embedded V8 engine needs a C/C++ toolchain:
sudo apt-get update
sudo apt-get install -y build-essential make cmake clang libclang-dev
macOS needs the Xcode Command Line Tools (xcode-select --install); Windows needs the MSVC build tools.
3

Clone and build

git clone https://github.com/0xchasercat/meow
cd meow
cargo build --release
The optimized binary lands at target/release/meow. Building bakes a V8 startup snapshot into the binary, which adds a few seconds to the first build.
4

Put it on your PATH

Copy target/release/meow somewhere on your PATH, or install it with Cargo:
cargo install --path crates/cli
This installs the meow binary from the meow-cli crate.

Verify

meow --version
Run with no arguments to see the landing screen — the command catalog plus live telemetry about how meow was installed, your cache size, and any shadow installations on your PATH:
meow
Then check your environment, config, and lockfile health at any time:
meow doctor
╭─ meow doctor ───────────────────────────────╮
│ ◉ meow 0.0.0                                 │
│ ✓ package.json    found                      │
│ ✓ lockfile        12 packages                │
│ ✓ node_modules    materialized               │
│ ✓ cache           ~/.meow/cache              │
╰──────────────────────────────────────────────╯

Platform support

meow is tested in CI on Linux, macOS, and Windows. Package materialization uses the best primitive each platform offers:
PlatformPackage contentsDependency edges
macOS (APFS)clonefile copy-on-writesymlinks
Linuxrecursive hardlinkssymlinks
Windowsrecursive hardlinksNTFS directory junctions
See node_modules & materialization for why meow never uses symlinks for package contents.

Where meow keeps its files

Everything global lives under ~/.meow:
PathPurpose
~/.meow/binThe meow binary and the node/npm/npx/… shims
~/.meow/cache/<algo>/<hash>Global content-addressed package cache (tarballs)
~/.meow/cache/metadataCached npm registry metadata
~/.meow/cache/unpackedUnpacked package store
~/.meow/globalGlobally installed packages (meow add -g)
Set MEOW_HOME to relocate the whole ~/.meow tree — useful for CI caching or keeping the cache on a fast volume. Child runtimes inherit it automatically.

Multiple installations

If meow detects another meow binary earlier on your PATH, the landing screen warns you:
⚠ Multiple meow installations detected!
  You are running: /usr/local/bin/meow
This usually means a build-from-source binary is shadowing (or being shadowed by) the installer copy in ~/.meow/bin. Keep one, or order your PATH deliberately.

Next steps

Quickstart

Build and run something real in 60 seconds.

Migrate from Node

Map your npm / node / npx muscle memory onto meow.