How this skill is triggered — by the user, by Claude, or both
Slash command
/bun:bunThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Always prefer Bun over Node.js for all operations.
Always prefer Bun over Node.js for all operations.
| Use | Instead of |
|---|---|
bun | node |
bunx | npx |
bun install | npm install, yarn, pnpm install |
bun run <script> | npm run, yarn run |
bun test | jest, vitest |
bun build | webpack, esbuild |
Prefer packageManager in package.json over other methods:
{
"packageManager": "[email protected]"
}
This is the recommended approach because:
corepackThe setup script checks for Bun version in this order:
.bun-version filepackage.json → packageManager field.env.github → BUN_VERSION=x.x.xWhen setting up a new project, use packageManager in package.json.
Prefer Bun's built-in APIs:
// File I/O
const file = Bun.file('path/to/file');
const text = await file.text();
await Bun.write('output.txt', 'content');
// SQLite
import { Database } from 'bun:sqlite';
const db = new Database('app.db');
// HTTP Server
Bun.serve({
port: 3000,
fetch(req) {
return new Response('Hello');
}
});
// Shell commands
import { $ } from 'bun';
await $`ls -la`;
// Environment (auto-loaded from .env)
const apiKey = process.env.API_KEY;
dotenv - Bun auto-loads .envexpress - Use Bun.serve() with routesbetter-sqlite3 - Use bun:sqlitews - Use built-in WebSocketnode-fetch - Use native fetchnpx claudepluginhub kingstinct/.github --plugin bunProvides guidance on using Bun as a runtime, package manager, bundler, and test runner, including migration from Node and Vercel deployment.
Bun runtime conventions, APIs, and toolchain. Invoke whenever task involves any interaction with Bun — serving HTTP, file I/O, shell scripting, testing, bundling, or package management with Bun.
Guides using Bun as runtime, package manager, bundler, and test runner for JS/TS projects with Node comparisons, migration steps, and Vercel deployment.