bun
Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.
Install
npx skills add https://github.com/brianlovin/agent-config --skill bunSKILL.md
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.
Related skills
setup-matt-pocock-skillsmattpocock905KConfigure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.hyperframes-cliheygen-com714KUse the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, timeline, history, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers loimplementmattpocock627KImplement a piece of work based on a spec or set of tickets.ask-mattmattpocock626KAsk which skill or flow fits your situation. A router over the skills in this repo.