typescript-plugin/skills/bun-package-manager/SKILL.md
Fast JavaScript package management with Bun — install, add, remove, update. Use when installing all deps, adding/removing packages, running `bun update`/`outdated`, managing workspaces, doing a `--frozen-lockfile` CI install, or debugging conflicts.
npx skillsauth add laurigates/claude-plugins bun-package-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Scenario | Use this skill | Alternative |
|----------|---------------|-------------|
| Installing all project dependencies | Yes | N/A |
| Adding or removing packages | Yes | bun-add for quick single-package additions |
| Updating packages or checking outdated | Yes | N/A |
| Managing workspace dependencies | Yes | N/A |
| CI reproducible installs (--frozen-lockfile) | Yes | N/A |
| Running scripts or tests | No - use bun-development | bun-test for quick test runs |
| Publishing packages to npm | No - use bun-publishing | N/A |
| Debugging lockfile conflicts | Yes | bun-lockfile-update for targeted lockfile operations |
Bun's package manager is significantly faster than npm/yarn/pnpm:
# Standard install
bun install
# CI/reproducible (frozen lockfile)
bun install --frozen-lockfile
# Production only (no devDependencies)
bun install --production
# Force reinstall
bun install --force
# Dry run (preview)
bun install --dry-run
# Add dependency
bun add <package>
# Add dev dependency
bun add --dev <package>
bun add -d <package>
# Pin exact version (no ^)
bun add --exact <package>
bun add -E <package>
# Global install
bun add --global <package>
bun add -g <package>
# Add to specific workspace
bun add <package> --cwd packages/mylib
# Remove dependency
bun remove <package>
# Remove from devDependencies
bun remove --dev <package>
# Dry run
bun remove --dry-run <package>
# Update within semver ranges
bun update
# Update to latest (ignore ranges)
bun update --latest
# Interactive selection
bun update --interactive
# Update across workspaces
bun update --recursive
# Check outdated packages
bun outdated
# Why is package installed?
bun why <package>
# List installed packages
bun pm ls
# View package cache
bun pm cache
{
"name": "monorepo",
"private": true,
"workspaces": ["packages/*", "apps/*"]
}
# Install all workspace deps
bun install
# Add to specific workspace
bun add express --cwd apps/api
# Run in matching workspaces
bun run --filter 'package-*' build
# Run in all workspaces
bun run --workspaces test
{
"dependencies": {
"shared-utils": "workspace:*"
}
}
| Context | Command |
|---------|---------|
| CI install | bun install --frozen-lockfile |
| Prod deploy | bun install --production |
| Preview changes | bun add --dry-run <pkg> |
| Exact versions | bun add --exact <pkg> |
| Workspace target | bun add <pkg> --cwd <path> |
| Force refresh | bun install --force |
| Flag | Short | Description |
|------|-------|-------------|
| --frozen-lockfile | | Fail if lockfile changes |
| --production | -p | Skip devDependencies |
| --dev | -d | Add to devDependencies |
| --exact | -E | Pin exact version |
| --global | -g | Global install |
| --dry-run | | Preview without executing |
| --force | -f | Force reinstall all |
| --cwd <path> | | Target directory |
| --latest | | Update to latest version |
| --recursive | | Apply across workspaces |
Lockfile mismatch in CI:
# Use frozen lockfile
bun install --frozen-lockfile
Peer dependency conflicts:
# Force install anyway
bun install --force
Package not found:
# Check if package exists
bun why <package>
| Variable | Description |
|----------|-------------|
| BUN_OPTIONS | Global CLI flags |
| BUN_INSTALL | Bun installation directory |
testing
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.