Loading...
Loading...
Expert guidance for using aube, a fast Rust-based Node.js package manager compatible with pnpm, npm, yarn, and bun lockfiles.
npx skill4agent add aradotso/trending-skills aube-package-managerSkill by ara.so — Daily 2026 Skills collection.
pnpm-lock.yamlpackage-lock.jsonyarn.lockbun.lock# Install globally
mise use -g aube
# Pin to a project
mise use aube
# Verify
aube --versionnpm install -g @endevco/aubebrew install endevco/tap/aube~/.local/share/aube/store/node_modules/.aube/aube install # Install all dependencies
aube install -r # Install across all workspace packages
aube install --prod # Production dependencies only
aube install --lockfile-only # Update lockfile without touching node_modules
aube add react # Add a runtime dependency
aube add -D vitest # Add a dev dependency
aube add zod --filter @acme/api # Add to a specific workspace package
aube remove react # Remove a dependency
aube update # Update deps within package.json rangesaube ci # Clean install: removes node_modules, verifies lockfile is fresh, installsaube ciaube run build # Run a package.json script
aube run test # Run test script (auto-installs if deps are stale)
aube test # Shortcut: same as `aube run test`
aube dev # Any script name works directly as a subcommand
aube build
aube lint
aube exec vitest # Run a local binary from node_modules/.bin
aube dlx cowsay hi # Run a package in a throwaway environment (like npx)aubr build # Equivalent to: aube run build
aubx cowsay hi # Equivalent to: aube dlx cowsay hiaube list # List installed packages
aube why react # Explain why a package is installed
aube outdated # Show outdated dependencies
aube audit # Security audit
aube store path # Show global store location
aube store prune # Remove unused packages from global store
aube config get registry # Read config valuesaube pack # Pack a package tarball
aube publish # Publish to registry
aube link # Link a local package
aube unlink # Unlink a local package| File | Reads | Writes in place |
|---|---|---|
| ✅ | ✅ |
| ✅ | ✅ |
| ✅ | ✅ |
| ✅ | ✅ |
| ✅ | ✅ |
| ✅ | ✅ |
node_modules# Install across all workspace packages
aube install -r
# Run a script in all workspace packages
aube run test -r
# Add a dependency to a specific package
aube add zod --filter @acme/api
aube add -D typescript --filter @acme/sharedpnpm-workspace.yamlaube-workspace.yamlaube-workspace.yamlpackages:
- "packages/*"
- "apps/*"# See which packages had scripts skipped
aube ignored-builds
# Approve specific packages to run their build scripts
aube approve-buildspackage.json"aube".aubercaube.config.yaml{
"name": "my-app",
"aube": {
"registry": "https://registry.npmjs.org/",
"store-dir": "/custom/store/path"
}
}# Read a config value
aube config get registry
# Set a config value
aube config set registry https://my-private-registry.example.comname: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install mise
uses: jdx/mise-action@v2
- name: Install aube
run: mise use -g aube
- name: Cache aube store
uses: actions/cache@v4
with:
path: ~/.local/share/aube/store
key: aube-store-${{ hashFiles('**/pnpm-lock.yaml', '**/aube-lock.yaml') }}
restore-keys: |
aube-store-
- name: Install dependencies
run: aube ci
- name: Run tests
run: aube testFROM node:22-slim
# Install aube via npm
RUN npm install -g @endevco/aube
WORKDIR /app
# Copy lockfile and package.json first for layer caching
COPY package.json pnpm-lock.yaml ./
# Frozen install — fail if lockfile would change
RUN aube ci
COPY . .
RUN aube run build
CMD ["node", "dist/index.js"]# Only update the lockfile, don't install into node_modules
aube install --lockfile-only# 1. Install aube
mise use -g aube
# 2. Run in your existing project — aube reads pnpm-lock.yaml
cd my-project
aube install
# 3. Approve any build scripts that pnpm was running
aube approve-builds
# 4. Replace pnpm scripts in package.json (optional)
# Before: "scripts": { "postinstall": "pnpm run build:native" }
# After: keep as-is, aube runs package.json scripts the same way# npm — aube reads package-lock.json
cd my-npm-project
aube install
# yarn classic — aube reads yarn.lock
cd my-yarn-project
aube install
# Bun — aube reads bun.lock
cd my-bun-project
aube install# Build only the API package
aube run build --filter @acme/api
# Run tests in all packages that changed
aube run test --filter '...[origin/main]'
# Install and run in one step (auto-install if stale)
aube exec vitest --run# Find where the store lives
aube store path
# → ~/.local/share/aube/store
# Clean up packages no longer used by any project
aube store pruneaube why lodash
# Shows the dependency chain that requires lodashaube cipackage.jsonaube install # updates lockfile
git add pnpm-lock.yaml
git commit -m "chore: update lockfile"aube ignored-builds
aube approve-builds # interactively approve packagesaube add <missing-package>~/.local/share/aube/store# Upgrade lockfile with pnpm first
pnpm install # regenerates as v9 format
# Then switch to aube
aube installnode_modules.pnp.cjs# In .yarnrc.yml
nodeLinker: node-modules
yarn install # regenerates yarn.lock for node-modules layout
aube install # now aube can take over