bun-cli
Installation
SKILL.md
Bun CLI
Bun is an all-in-one JavaScript/TypeScript runtime, package manager, bundler, test runner, type checker (v1.4.3+), and formatter (v1.4.4+). Bun runs TypeScript natively — bun file.ts directly, no compile step, no tsc, no ts-node — bun check replaces tsc --noEmit, and bun fmt replaces prettier --write. Always use bun instead of node, npm, npx, yarn, or pnpm in Bun projects.
Verified against Bun v1.4.4 (2026-10-22). Features are tagged with the version that
introduced them (v1.4+, v1.4.1+, v1.4.2+, v1.4.3+, v1.4.4+). Where a release changed
existing behavior, both behaviors are stated so this skill stays correct on older projects --
run bun --version before relying on a version-tagged item.
Version Guide: What Each 1.4.x Release Changes
| Release | Adds | Changes under existing projects | Upgrade to it when |
|---|---|---|---|
| 1.4.0 (2026-08-20) | bun audit fix, bun dedupe, bun prune, bun why, bun pm licenses / diff, --filter on add / remove / update, --catalog, bun test --timings, --react-compiler, --asset |
bun.lock v2 / v3 (Bun 1.3 cannot read v3), strict-TOML bunfig.toml, bun update moves transitive dependencies, resetAllMocks() drops implementations |
You want the 1.4 tooling -- check every CI Bun pin and bunfig.toml first |
| 1.4.1 (2026-09-04) | --offline / --prefer-offline, self-contained workspaces, --min-chunk-size, --bytecode-depth, --env-file from pipes, --no-ffi-cc |
Fewer, smaller split chunks plus modulepreload links (build snapshots change) |
Never as a target: its bundler can rename a nested var onto a let, so Elysia bundles fail to load -- go to 1.4.2 or later |
| 1.4.2 (2026-09-05) | Nothing (bugfix release) | -- | You are on 1.4.1, or bun install panics with range end index out of range |
| 1.4.3 (2026-10-10) | bun check / --check, --bytecode-order, --compile-jit-policy, [hash9]-[hash13] |
Installs cache only what they place (an --offline cache needs a full warm-up install), --disallow-code-generation-from-strings enforced, Bun.build({ tsconfig }) honored, --coverage-reporter implies --coverage |
You want type checking without tsc, or large --splitting builds fail with Multiple files share the same output path |
| 1.4.4 (2026-10-22) | bun fmt, bun pm fetch, bun pm cache pack / unpack / prune, bun publish --recursive, packageExtensions, link:./path, --libc, bun check --no-script, Yarn Berry lockfile migration |
Unknown package-manager flags exit 1 and npm/Yarn/pnpm flags are translated, pnpm-style peer resolution, stricter coverage counts, the hoisted linker removes dependencies dropped from package.json |
You want a built-in formatter, a Berry migration, bun install retries that survive registry blips, or the fixes for 133 closed bun install issues -- run CI once to catch flag errors and coverageThreshold drops |