Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.
90
86%
Does it follow best practices?
Impact
99%
2.02xAverage score across 3 eval scenarios
Passed
No findings from the security scan
Use Bun as the default JavaScript/TypeScript runtime and package manager.
| 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.
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 |
Use bun:test for tests:
import { test, expect } from "bun:test";
test("description", () => {
expect(1).toBe(1);
});Run with bun test.
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.
For detailed API docs, see node_modules/bun-types/docs/**.md.
1a9819e
Also appears in
since Aug 14, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.