aube-package-manager

Expert guidance for using aube, a fast Rust-based Node.js package manager compatible with pnpm, npm, yarn, and bun lockfiles.

22 stars

Best use case

aube-package-manager is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Expert guidance for using aube, a fast Rust-based Node.js package manager compatible with pnpm, npm, yarn, and bun lockfiles.

Teams using aube-package-manager should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/aube-package-manager/SKILL.md --create-dirs "https://raw.githubusercontent.com/Aradotso/trending-skills/main/skills/aube-package-manager/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/aube-package-manager/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How aube-package-manager Compares

Feature / Agentaube-package-managerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Expert guidance for using aube, a fast Rust-based Node.js package manager compatible with pnpm, npm, yarn, and bun lockfiles.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Aube Package Manager

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

Aube is a fast Node.js package manager written in Rust. It drops into existing projects by reading and writing existing lockfiles (`pnpm-lock.yaml`, `package-lock.json`, `yarn.lock`, `bun.lock`), uses a global content-addressable store to reduce disk usage, and delivers dramatically faster installs than pnpm or Bun — especially on warm CI.

## Installation

### Via mise (recommended)

```sh
# Install globally
mise use -g aube

# Pin to a project
mise use aube

# Verify
aube --version
```

### Via npm

```sh
npm install -g @endevco/aube
```

### Via Homebrew (beta tap)

```sh
brew install endevco/tap/aube
```

## Core Concepts

- **Lockfile compatibility**: Reads and writes existing lockfiles in place — no forced migration.
- **Global store**: Package files live in `~/.local/share/aube/store/` (XDG) and are shared across projects.
- **Isolated layout**: Packages link through `node_modules/.aube/` — phantom dependencies are blocked.
- **Secure defaults**: New package releases wait a minimum age; lifecycle scripts require explicit approval.

## Key Commands

### Install & Dependency Management

```sh
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 ranges
```

### CI

```sh
aube ci    # Clean install: removes node_modules, verifies lockfile is fresh, installs
```

Use `aube ci` in CI pipelines where the lockfile must be the source of truth.

### Running Scripts and Binaries

```sh
aube 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)
```

### Multicall Shims

```sh
aubr build        # Equivalent to: aube run build
aubx cowsay hi    # Equivalent to: aube dlx cowsay hi
```

### Inspection & Maintenance

```sh
aube 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 values
```

### Publishing

```sh
aube pack       # Pack a package tarball
aube publish    # Publish to registry
aube link       # Link a local package
aube unlink     # Unlink a local package
```

## Lockfile Compatibility

| File | Reads | Writes in place |
|---|---|---|
| `aube-lock.yaml` | ✅ | ✅ |
| `pnpm-lock.yaml` v9 | ✅ | ✅ |
| `package-lock.json` v2/v3 | ✅ | ✅ |
| `npm-shrinkwrap.json` | ✅ | ✅ |
| `yarn.lock` (v1 classic + v2+ berry) | ✅ | ✅ |
| `bun.lock` | ✅ | ✅ |

**Not supported:**
- pnpm v5/v6 lockfiles (upgrade with pnpm first)
- Yarn PnP projects (switch to `node_modules` linker first)

## Workspaces

```sh
# 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/shared
```

Workspace config files:
- `pnpm-workspace.yaml` — read and written if present
- `aube-workspace.yaml` — used for aube-first projects

Example `aube-workspace.yaml`:

```yaml
packages:
  - "packages/*"
  - "apps/*"
```

## Dependency Lifecycle Scripts

Aube skips lifecycle scripts by default for security.

```sh
# See which packages had scripts skipped
aube ignored-builds

# Approve specific packages to run their build scripts
aube approve-builds
```

After approval, the allowed packages are recorded in your project config so teammates get the same behavior.

## Configuration

Aube reads config from `package.json` under `"aube"` key or from `.auberc` / `aube.config.yaml`.

```json
{
  "name": "my-app",
  "aube": {
    "registry": "https://registry.npmjs.org/",
    "store-dir": "/custom/store/path"
  }
}
```

```sh
# Read a config value
aube config get registry

# Set a config value
aube config set registry https://my-private-registry.example.com
```

## CI/CD Patterns

### GitHub Actions

```yaml
name: 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 test
```

### Docker

```dockerfile
FROM 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"]
```

### Lockfile-only update (for Docker layer caching)

```sh
# Only update the lockfile, don't install into node_modules
aube install --lockfile-only
```

## Migrating from pnpm

```sh
# 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
```

## Migrating from npm/yarn

```sh
# 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
```

## Common Patterns

### Monorepo with filtered commands

```sh
# 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
```

### Global store management

```sh
# Find where the store lives
aube store path
# → ~/.local/share/aube/store

# Clean up packages no longer used by any project
aube store prune
```

### Checking why a package is installed

```sh
aube why lodash
# Shows the dependency chain that requires lodash
```

## Troubleshooting

### `aube ci` fails with lockfile mismatch

The lockfile is out of sync with `package.json`. Fix locally:

```sh
aube install          # updates lockfile
git add pnpm-lock.yaml
git commit -m "chore: update lockfile"
```

### Build scripts not running

Aube skips lifecycle scripts by default. Check what was skipped:

```sh
aube ignored-builds
aube approve-builds   # interactively approve packages
```

### Package phantom dependency errors

Aube uses an isolated layout — packages can only import their declared dependencies. Fix by adding the missing dependency explicitly:

```sh
aube add <missing-package>
```

### Slow first install / cold cache

The first install populates the global store. Subsequent installs (same or other projects with shared deps) will be significantly faster. Cache `~/.local/share/aube/store` in CI for warm-cache performance.

### pnpm v5/v6 lockfile not supported

```sh
# Upgrade lockfile with pnpm first
pnpm install  # regenerates as v9 format
# Then switch to aube
aube install
```

### Yarn PnP projects

Aube writes `node_modules`, not `.pnp.cjs`. Switch the Yarn linker first:

```sh
# In .yarnrc.yml
nodeLinker: node-modules
yarn install   # regenerates yarn.lock for node-modules layout
aube install   # now aube can take over
```

## Links

- [Documentation](https://aube.en.dev)
- [Benchmarks](https://aube.en.dev/benchmarks)
- [Lockfile compatibility](https://aube.en.dev/package-manager/lockfiles)
- [Scripts and binaries](https://aube.en.dev/package-manager/scripts)
- [Configuration reference](https://aube.en.dev/package-manager/configuration)
- [Installation methods](https://aube.en.dev/installation)

Related Skills

quip-node-manager

22
from Aradotso/trending-skills

Desktop GUI and CLI app for running and monitoring Quip Network nodes, built with Tauri v2 and Rust

anubis-android-app-manager

22
from Aradotso/trending-skills

Android app manager with VPN integration that freezes/unfreezes app groups based on VPN connection state using Shizuku's pm disable-user

antigravity-manager

22
from Aradotso/trending-skills

AI coding agent skill for Antigravity Manager — a Tauri v2 + Rust desktop app and Docker service that manages multiple Google/Anthropic accounts and proxies them as standard OpenAI/Anthropic/Gemini API endpoints with intelligent account rotation.

```markdown

22
from Aradotso/trending-skills

---

zeroboot-vm-sandbox

22
from Aradotso/trending-skills

Sub-millisecond VM sandboxes for AI agents using copy-on-write KVM forking via Zeroboot

yourvpndead-vpn-detection

22
from Aradotso/trending-skills

Android app that detects VPN/proxy servers (VLESS/xray/sing-box) via local SOCKS5 vulnerability, exposing exit IPs and server configs without root

xata-postgres-platform

22
from Aradotso/trending-skills

Expert skill for Xata open-source cloud-native Postgres platform with copy-on-write branching, scale-to-zero, and Kubernetes deployment

x-mentor-skill-nuwa

22
from Aradotso/trending-skills

AI-powered X (Twitter) content strategy skill that distills methodologies from 6 top creators + open-source algorithm data into actionable writing, growth, and monetization guidance.

wx-favorites-report

22
from Aradotso/trending-skills

End-to-end pipeline to extract, decrypt, and visualize WeChat Mac favorites from encrypted SQLite DB into an interactive HTML report.

wterm-web-terminal

22
from Aradotso/trending-skills

Web terminal emulator with Zig/WASM core, DOM rendering, and React/vanilla JS bindings

worldmonitor-intelligence-dashboard

22
from Aradotso/trending-skills

Real-time global intelligence dashboard with AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking

witr-process-inspector

22
from Aradotso/trending-skills

CLI and TUI tool that explains why processes, services, and ports are running by tracing causality chains across supervisors, containers, and shells.