endevco/aube
endevco/aubeA fast Node.js package manager
From the README
aube
A fast Node.js package manager that drops into existing projects.
aube means dawn in French. Pronounced /ob/, like "ohb".
Read the docs
[!WARNING] aube is beta software. It aims for compatibility with pnpm v11, but it has not been tested across many projects yet.
Why Try It
Fast installs. Warm CI is about 7x faster than pnpm and 3x faster than Bun in the current benchmarks. Across the fixture set, aube runs up to ~22x faster than pnpm and up to 3x faster than Bun.
Existing lockfiles. Reads and writes pnpm-lock.yaml, package-lock.json, npm-shrinkwrap.json, yarn.lock, and bun.lock in place.
Cheap repeat commands. aube run test, aube test, and aube exec vitest auto-install when dependencies are stale, then skip that work when nothing changed.
Less disk use. A global content-addressable store lets projects share package files instead of keeping a full copy of the same dependencies in every checkout.
Secure defaults. aube defaults to safer installs: new releases wait out a minimum age, exotic transitive dependencies are blocked, and dependency lifecycle scripts require approval.
Install
The recommended path is mise:
mise use -g aube
Check that it is on your PATH:
aube --version
Inside a project, you can also pin aube with mise:
mise use aube
aube is also published on npm:
npm install -g @endevco/aube
While aube is beta, Homebrew installs come from the Endev tap:
brew install endevco/tap/aube
First Install
Run aube in an existing Node.js project:
aube install
If the project already has a supported lockfile, aube reads it and writes updates back to the same file. That makes it easy to try aube locally without forcing the rest of the team to switch package managers first.
For a new project with no lockfile, aube creates aube-lock.yaml.
Daily Commands
aube install # install dependencies
aube add react # add a dependency
aube add -D vitest # add a dev dependency
aube remove react # remove a dependency
aube update # update dependencies within package.json ranges
aube run build # run a package.json script
aube test # run the test script, auto-installing first if needed
aube exec vitest # run a local binary
aube dlx cowsay hi # run a package in a throwaway environment
aube ci # clean, frozen install for CI
You can also run scripts directly:
aube dev
aube build
aube lint
If the script exists in package.json, aube treats that as aube run .
Shortcuts: aubr and aubx
aubr and aubx are multicall shims for aube run and aube dlx. They
share a binary with aube and dispatch purely on argv[0], so every flag
that works on the full command also works on the shim:
aubr build # aube run build