Bun Runtime

SkillDocs & knowledge

This is a guide to Bun, a JavaScript tool that works as a runtime, package manager, bundler, and test runner. Once added, your AI can explain when Bun fits better than Node, walk through migration notes, and describe Bun support on Vercel.

Available today. Use it from your connected AI after setup.

After adding the skill, ask your AI a Bun question, such as whether Bun or Node is the better choice for your project or what migrating to Bun involves.

Then ask your AI: use the Bun Runtime skill

What your AI can do with it

  • Explain when to choose Bun over Node for a project
  • Walk through migration notes when moving from Node to Bun
  • Describe how to use Bun as a runtime, package manager, bundler, and test runner
  • Answer questions about Bun support on Vercel

What this skill tells your AI

The instructions your AI receives, as published by fmarzochi/egc in skills/devops/bun-runtime/SKILL.md and read by ahel’s review.

Bun is a fast all-in-one JavaScript runtime and toolkit: runtime, package manager, bundler, and test runner.

When to Use

  • Prefer Bun for: new JS/TS projects, scripts where install/run speed matters, Vercel deployments with Bun runtime, and when you want a single toolchain (run + install + test + build).
  • Prefer Node for: maximum ecosystem compatibility, legacy tooling that assumes Node, or when a dependency has known Bun issues.

Use when: adopting Bun, migrating from Node, writing or debugging Bun scripts/tests, or configuring Bun on Vercel or other platforms.

How It Works

  • Runtime: Drop-in Node-compatible runtime (built on JavaScriptCore, implemented in Zig).
  • Package manager: bun install is significantly faster than npm/yarn. Lockfile is bun.lock (text) by default in current Bun; older versions used bun.lockb (binary).
  • Bundler: Built-in bundler and transpiler for apps and libraries.
  • Test runner: Built-in bun test with Jest-like API.

Migration from Node: Replace node script.js with bun run script.js or bun script.js. Run bun install in place of npm install; most packages work. Use bun run for npm scripts; bun x for npx-style one-off runs. Node built-ins are supported; prefer Bun APIs where they exist for better performance.

Vercel: Set runtime to Bun in project settings. Build: bun run build or bun build ./src/index.ts --outdir=dist. Install: bun install --frozen-lockfile for reproducible deploys.

Examples

Run and install

# Install dependencies (creates/updates bun.lock or bun.lockb)
bun install

# Run a script or file
bun run dev
bun run src/index.ts
bun src/index.ts

Scripts and env

bun run --env-file=.env dev
FOO=bar bun run script.ts

Testing

bun test
bun test --watch
// test/example.test.ts
import { expect, test } from "bun:test";

test("add", () => {
  expect(1 + 2).toBe(3);
});

Runtime API

const file = Bun.file("package.json");
const json = await file.json();

Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Hello");
  },
});

Best Practices

  • Commit the lockfile (bun.lock or bun.lockb) for reproducible installs.
  • Prefer bun run for scripts. For TypeScript, Bun runs .ts natively.
  • Keep dependencies up to date; Bun and the ecosystem evolve quickly.

Signals

GitHub stars
52
Forks
43
Last commit
Sep 2026

ahel recommends instead

Advanced
Catalog kind
skill
Gateway key
bun-runtime-fmarzochi
Source
github.com/fmarzochi/egc