Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.
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.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer