Skip to content
Development
Skill

/bun

Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.

From plugin
agent-config
35718 skills1 agent
Install
$ npx -y skills add brianlovin/agent-config --skill bun --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/bun

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.

SKILL.md

bun.SKILL.md
name: bun
description: Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.

Bun Runtime

Use Bun as the default JavaScript/TypeScript runtime and package manager.

Command Mappings

| Instead of | Use | |------------|-----| | `node file.ts` | `bun file.ts` | | `ts-node file.ts` | `bun file.ts` | | `npm install` | `bun install` | | `npm run script` | `bun run script` | | `jest` / `vitest` | `bun test` | | `webpack` / `esbuild` | `bun build` |

Bun automatically loads `.env` files - don't use dotenv.

Bun-Specific APIs

Prefer these over Node.js equivalents:

| API | Purpose | Don't use | |-----|---------|-----------| | `Bun.serve()` | HTTP server with WebSocket, HTTPS, routes | express | | `bun:sqlite` | SQLite database | better-sqlite3 | | `Bun.redis` | Redis client | ioredis | | `Bun.sql` | Postgres client | pg, postgres.js | | `Bun.file()` | File operations | node:fs readFile/writeFile | | `Bun.$\`cmd\`` | Shell commands | execa | | `WebSocket` | WebSocket client (built-in) | ws |

Testing

Use `bun:test` for tests:

import { test, expect } from "bun:test";

test("description", () => {
  expect(1).toBe(1);
});

Run with `bun test`.

Frontend Development

Use HTML imports with `Bun.serve()` instead of Vite. Supports React, CSS, Tailwind.

**Server:**

import index from "./index.html"

Bun.serve({
  routes: {
    "/": index,
    "/api/users/:id": {
      GET: (req) => Response.json({ id: req.params.id }),
    },
  },
  development: { hmr: true, console: true }
})

**HTML file:**

<html>
  <body>
    <script type="module" src="./app.tsx"></script>
  </body>
</html>

Bun's bundler transpiles `.tsx`, `.jsx`, `.js` automatically. CSS is bundled via `<link>` tags.

Run with `bun --hot ./server.ts` for HMR.

Documentation

For detailed API docs, see `node_modules/bun-types/docs/**.md`.

Read more
Ships withagent-config

My agent configuration for Claude Code and Codex.

Get the whole plugin

Other skills on agent-config.