last update
Jun 2, 2026
license
MITv1.0.0
format
SKILL.md
- Install
// Downloads SKILL.md into ~/.claude/skills/bun-runtime-pro/
$ curl -fsSL --create-dirs -o ~/.claude/skills/bun-runtime-pro/SKILL.md https://claudeskil.com/skills/bun-runtime-pro/SKILL.md - Invoke
// Inside Claude Code, type the skill name as a slash command
> /bun-runtime-pro scaffold a typed REST endpoint - Or just ask
// Claude loads the skill by itself when a request matches its description
> scaffold a typed REST endpoint
- name:
- Bun Runtime Pro
- slug:
- bun-runtime-pro
- version:
- v1.0.0
- license:
- MIT
- author:
- @chiragthummar16
- categories:
- tags:
- #bun#javascript#typescript#runtime#sqlite
- description:
Bun-native apps — bun.serve, sqlite-native, test runner, package manager, hot reload, single binary.
// What you can do with it
- HTTP / WebSocket: Bun.serve({ port, fetch, websocket }), returning standard Response objects, plus routes for path matching and server.upgrade(req) for WS.
- SQLite: import { Database } from "bun:sqlite", prepared statements via db.query(...).all()/.get()/.run(), and db.transaction().
- Testing: import { test, expect, describe, mock } from "bun:test", run with bun test --watch and --coverage.
- Packages & scripts: bun install (uses bun.lockb), bunx, and bun run.
- Bundling: Bun.build({ entrypoints, outdir, target }) and bun build --compile --target=bun-linux-x64.
- Env & files: automatic .env loading, Bun.file() / Bun.write().
README.md
Bun Runtime Pro
Bun Runtime Pro helps you build applications that lean on Bun's built-in runtime APIs instead of stitching together Node, npm, a bundler, and a test framework. It's for developers starting a new server, CLI, or library who want one toolchain — and for teams migrating an existing Node project onto Bun 1.x and replacing express, sqlite3, vitest, and pkg with native equivalents.
When to use it
- Spinning up an HTTP or WebSocket service and you want a zero-dependency server.
- Adding a local database without a native-module compile step (
bun:sqliteships in the runtime). - Replacing Jest/Vitest with
bun testand its Jest-compatibleexpectmatchers. - Shipping a CLI as a single self-contained executable via
bun build --compile. - Tightening dev loops with
bun --hotinstead ofnodemon+ts-node.
What it does
It scaffolds and reviews code against the real Bun 1.x surface:
- HTTP / WebSocket:
Bun.serve({ port, fetch, websocket }), returning standardResponseobjects, plusroutesfor path matching andserver.upgrade(req)for WS. - SQLite:
import { Database } from "bun:sqlite", prepared statements viadb.query(...).all()/.get()/.run(), anddb.transaction(). - Testing:
import { test, expect, describe, mock } from "bun:test", run withbun test --watchand--coverage. - Packages & scripts:
bun install(usesbun.lockb),bunx, andbun run. - Bundling:
Bun.build({ entrypoints, outdir, target })andbun build --compile --target=bun-linux-x64. - Env & files: automatic
.envloading,Bun.file()/Bun.write().
Usage example
curl -fsSL --create-dirs -o ~/.claude/skills/bun-runtime-pro/SKILL.md https://claudeskil.com/skills/bun-runtime-pro/SKILL.md
bun init -y
// server.ts
import { Database } from "bun:sqlite";
const db = new Database("app.db");
db.run("CREATE TABLE IF NOT EXISTS hits (n INTEGER)");
Bun.serve({
port: 3000,
fetch(req) {
db.run("INSERT INTO hits (n) VALUES (1)");
const { c } = db.query("SELECT count(*) c FROM hits").get() as any;
return new Response(`hits: ${c}`);
},
});
bun --hot server.ts # hot reload
bun test --coverage # run tests
bun build server.ts --compile --outfile app # single binary
Tips & gotchas
bun --hotkeeps state across reloads (the process isn't restarted); usebun --watchif you need a full restart.bun:sqliteis synchronous by design — noawaiton queries. Reuse prepared statements; don't rebuilddb.query()in hot paths.--compileembeds the Bun runtime, so binaries are ~50MB+ and are platform-specific; cross-compile with--target.bun installreadsbun.lockb(binary). Commit it, but expectpackage-lock.jsonto be ignored.
FAQ
Can I keep using npm packages? Yes. bun install resolves the npm registry; most CommonJS and ESM packages work unchanged.
Does it replace tsc? Bun executes .ts/.tsx directly (no emit), but it does not type-check — run tsc --noEmit in CI for that.
Node APIs? Most node: built-ins are polyfilled; check Bun's compatibility table for gaps before migrating.
authored by
@chiragthummar16Android Jetpack Pro
Ship Jetpack Compose screens, ViewModels, and Gradle config with idiomatic best practices baked in.
0iOS SwiftUI Architect
Design SwiftUI apps with clean architecture: MV pattern, @Observable, and Swift Concurrency.
0PPT Deck Designer
Turn a rough outline into a visually polished pitch deck with on-brand layouts and speaker notes.
0Video Cut Assistant
Produce edit decision lists, trim plans, and subtitle cues from raw footage transcripts.
0
$ cat reviews/