bun-package-manager — скилл для Claude Code
Справочник по командам Bun, монорепозиториям и миграции с npm или pnpm. Помогает агенту точно подбирать флаги установки и управлять зависимостями.
npx skills add secondsky/claude-skills --skill bun-package-manager -a claude-codeЧто делает bun-package-manager
Скилл обучает агента синтаксису и флагам пакетного менеджера Bun. Внутри собраны правила запуска базовых команд (bun install, bun add, bun update), переключение между бинарным bun.lockb и текстовым bun.lock, а также синтаксис директив overrides и resolutions в package.json.
Ассистент получает инструкции по монорепозиториям и стратегиям связывания пакетов. Начиная с версии Bun 1.3, для воркспейсов по умолчанию действует строгий режим isolated, закрывающий доступ к необъявленным транзитивным зависимостям, тогда как для единичных проектов сохраняется режим hoisted. Для фильтрации задач по пакетам используются аргументы --filter.
Bun блокирует запуск post-install скриптов по умолчанию из соображений безопасности. Если сторонний пакет требует сборки на этапе установки, его имя придётся явно внести в массив trustedDependencies.
Какие задачи решает
- перевести проект с npm, yarn или pnpm на Bun
- настроить запуск команд по фильтрам в монорепозитории
- зафиксировать версии вложенных пакетов через overrides
- разблокировать выполнение post-install скриптов через trustedDependencies
Примеры запросов агенту
- Обнови bun.lockb на текстовый формат bun.lock без изменения версий пакетов
- Настрой изоляцию зависимостей для воркспейсов в bunfig.toml
- Добавь библиотеку из репозитория GitHub в dev-зависимости через bun add
Как установить bun-package-manager
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-package-manager -a claude-code2Вручную: положить файлы
~/.claude/skills/bun-package-manager/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/bun-package-manager/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-package-manager -a codex2Вручную: положить файлы
.agents/skills/bun-package-manager/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-package-manager -a cursor2Вручную: положить файлы
.cursor/skills/bun-package-manager/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install secondsky/claude-skills bun-package-manager2Вручную: положить файлы
.github/skills/bun-package-manager/SKILL.md1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-package-manager -a gemini-cli2Командой платформы
gemini skills install https://github.com/secondsky/claude-skills --path plugins/bun/skills/bun-package-managerВручную: положить файлы
.devin/skills/bun-package-manager/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-package-manager -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о bun-package-manager
Как установить bun-package-manager в Claude Code?
Выполните команду npx skills add secondsky/claude-skills --skill bun-package-manager -a claude-code.
Что делает этот скилл?
Он предоставляет агенту инструкции по командам Bun, монорепозиториям, форматам lockfile и миграции с npm или pnpm.
Почему Bun не запускает скрипты установки пакетов?
Bun отключает жизненные циклы скриптов по умолчанию ради безопасности. Разрешить их выполнение можно добавлением пакета в поле trustedDependencies файла package.json.
Исходный текст
SKILL.md · MIT
---
name: bun-package-manager
description: Bun package manager commands (install, add, remove, update), workspaces, lockfiles, npm/yarn/pnpm migration. Use for dependency management with Bun.
license: MIT
---
# Bun Package Manager
Bun's package manager is a dramatically faster replacement for npm, yarn, and pnpm. Up to **25x faster** than npm install.
## Quick Start
```bash
# Install all dependencies
bun install
# Add packages
bun add react react-dom
bun add -D typescript @types/react
# Remove packages
bun remove lodash
# Update packages
bun update
# Run package binaries
bunx create-next-app
```
## Core Commands
| Command | Description |
|---------|-------------|
| `bun install` | Install all dependencies |
| `bun add <pkg>` | Add dependency |
| `bun add -D <pkg>` | Add dev dependency |
| `bun add -O <pkg>` | Add optional dependency |
| `bun add --peer <pkg>` | Add peer dependency |
| `bun remove <pkg>` | Remove dependency |
| `bun update [pkg]` | Update dependencies |
| `bunx <pkg>` | Run package binary |
| `bun pm cache rm` | Clear cache |
## Installation Flags
```bash
# Production mode (no devDependencies)
bun install --production
# Frozen lockfile (CI/CD)
bun install --frozen-lockfile
bun ci # shorthand
# Dry run
bun install --dry-run
# Verbose/Silent
bun install --verbose
bun install --silent
# Force reinstall
bun install --force
# Global packages
bun install -g cowsay
```
## Lockfile
Bun uses `bun.lock` (text-based since v1.2):
```bash
# Generate text lockfile
bun install --save-text-lockfile
# Upgrade from binary bun.lockb
bun install --save-text-lockfile --frozen-lockfile --lockfile-only
rm bun.lockb
```
## Workspaces (Monorepos)
```json
{
"name": "my-monorepo",
"workspaces": ["packages/*", "apps/*"]
}
```
Run commands across workspaces:
```bash
# Run in matching packages
bun run --filter 'pkg-*' build
# Run in all workspaces
bun run --filter '*' test
# Install for specific packages
bun install --filter 'pkg-a'
```
## Lifecycle Scripts
Bun does **not** run lifecycle scripts from dependencies by default (security). Whitelist trusted packages:
```json
{
"trustedDependencies": ["my-trusted-package"]
}
```
```bash
# Skip all lifecycle scripts
bun install --ignore-scripts
# Concurrent scripts
bun install --concurrent-scripts 5
```
## Overrides & Resolutions
Force specific versions for nested dependencies:
```json
{
"overrides": {
"lodash": "4.17.21"
}
}
```
Yarn-style resolutions also supported:
```json
{
"resolutions": {
"lodash": "4.17.21"
}
}
```
## Non-npm Dependencies
```json
{
"dependencies": {
"dayjs": "git+https://github.com/iamkun/dayjs.git",
"lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
"zod": "github:colinhacks/zod",
"react": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
"bun-types": "npm:@types/bun"
}
}
```
## Installation Strategies
> **Bun 1.3+ default flip**: Starting in Bun 1.3, **`isolated` is the default for workspaces** (packages can no longer reach undeclared deps through the hoisted root `node_modules`). `hoisted` is now the **legacy opt-out** — only use it when a workspace package depends on a transitive dep that it doesn't declare.
### Hoisted (legacy opt-out; still the default for single non-workspace packages)
Traditional flat node_modules:
```bash
bun install --linker hoisted
```
### Isolated (default for workspaces in Bun 1.3+)
pnpm-like strict isolation:
```bash
bun install --linker isolated
```
Isolated prevents "phantom dependencies" - packages can only access declared dependencies. To make this explicit or restore it after an opt-out, set it in `bunfig.toml`:
```toml
[install]
linker = "isolated" # default for workspaces in Bun 1.3+
# linker = "hoisted" # legacy opt-out
```
## CI/CD
```yaml
# GitHub Actions
- uses: oven-sh/setup-bun@v2
- run: bun ci # frozen lockfile
```
## Platform-Specific
```bash
# Install for different platform
bun install --cpu=x64 --os=linux
```
## Secure Installation
When installing packages, follow supply chain security best practices:
- **Block post-install scripts** — Bun disables them by default; allow specific packages via `trustedDependencies` in `package.json`
- **Cooldown period** — Configure `minimumReleaseAge` in `bunfig.toml` to wait 7 days for new versions
- **Audit before installing** — Run `socket package score npm <pkg>` or use `socket npm install <pkg>` to check packages before they reach your project
Load the `dependency-upgrade` skill for full security configuration including Socket CLI integration, cooldown setup, lockfile validation, and CI enforcement.
## Common Errors
| Error | Cause | Fix |
|-------|-------|-----|
| `Cannot find module` | Missing dependency | Run `bun install` |
| `Lockfile mismatch` | package.json changed | Run `bun install` |
| `Peer dependency` | Missing peer | `bun add` the peer |
| `Lifecycle script failed` | Untrusted package | Add to `trustedDependencies` |
## Migration from Other Package Managers
### From pnpm
Bun automatically migrates `pnpm-lock.yaml`:
```bash
bun install # Auto-converts to bun.lock
```
Workspace config moves to package.json:
```json
{
"workspaces": {
"packages": ["apps/*", "packages/*"],
"catalog": {
"react": "^18.0.0"
}
}
}
```
### From npm/Yarn
Simply run `bun install` - Bun reads `package-lock.json` and `yarn.lock`.
## When to Load References
Load `references/cli-commands.md` when:
- Need complete CLI flag reference
- Working with advanced options
Load `references/workspaces.md` when:
- Setting up monorepos
- Configuring workspace filters
Load `references/migration.md` when:
- Migrating from npm/yarn/pnpm
- Converting lockfiles
© secondsky · MIT · secondsky/claude-skills