mcpField
B
bun-runtime

bun-runtime

github.com/oakossDevelopment2194 installsUpdated 12w ago
Repository

About bun-runtime

A reference skill for JavaScript and TypeScript developers using Bun. It covers runtime APIs, package management, bundling, and testing in one toolkit.

Key features

  1. 01Run JavaScript, TypeScript, and JSX
  2. 02Manage packages and scripts
  3. 03Bundle and test code
  4. 04File and HTTP server APIs
  5. 05SQLite and password hashing

Use cases

  1. 01Run a TypeScript project with Bun
  2. 02Build HTTP services and handle files
  3. 03Bundle and test code with built-in tools

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/oakoss/agent-skills --skill bun-runtime

After installing, type/bun-runtimein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
bundler.md
package-management.md
runtime-apis.md
testing.md

Details

From the project README

Bun Runtime

Overview

Bun is an all-in-one JavaScript and TypeScript runtime that includes a fast package manager, bundler, test runner, and Node.js-compatible APIs. It natively executes TypeScript and JSX without a separate compilation step.

When to use: Fast server-side JavaScript, TypeScript-first projects, replacing Node.js for better startup performance, built-in SQLite, password hashing, file I/O, HTTP servers, bundling, and testing without external tooling.

When NOT to use: Projects requiring full Node.js ecosystem compatibility (some native modules unsupported), production environments needing battle-tested stability of Node.js, or browser-only code that does not need a runtime.

Quick Reference

PatternAPIKey Points
HTTP serverBun.serve({ routes, fetch })Route-based, static/dynamic routes, per-method handlers
File readBun.file(path)Lazy BunFile (Blob), .text(), .json(), .stream()
File writeBun.write(dest, data)Accepts string, Blob, Response, BunFile
SQLitenew Database(path) from bun:sqliteSynchronous queries, prepared statements, WAL mode
Password hashBun.password.hash(pw)Argon2id default, bcrypt option, async and sync variants
Password verifyBun.password.verify(pw, hash)Auto-detects algorithm from hash format
BundlerBun.build({ entrypoints, outdir })Tree-shaking, code splitting, plugins, multiple targets
Test runnerimport { test, expect } from "bun:test"Jest-compatible, mocking, snapshots, watch mode
Install packagesbun installFast lockfile resolution, npm-compatible
Add packagebun add <pkg>-d for dev, -g for global
Run scriptbun run <script>Runs package.json scripts or files directly
Execute binarybunx <pkg>Like npx, runs without installing
S3 clientnew S3Client(opts) / s3.file(key)Built-in S3-compatible storage client
HTML importsimport page from './index.html'Fullstack: import HTML as route handler

Common Mistakes

MistakeCorrect Pattern
Using fetch handler only without routesUse routes object for static/dynamic routing (Bun v1.2.3+), fetch as fallback
Forgetting await on Bun.write()Bun.write() is async, always await it
Using Bun.file(path).text() without await.text(), .json(), .arrayBuffer() all return Promises
Creating SQLite database without WAL modeEnable WAL for concurrent reads: db.exec("PRAGMA journal_mode = WAL")
Using bun install without --frozen-lockfile in CIUse bun install --frozen-lockfile for reproducible CI builds
Importing jest globals in Bun testsImport from bun:test, not @jest/globals or vitest
Using node_modules/.bin/ directlyUse bunx or bun run instead of referencing bin paths
Expecting Bun.build() to throw on failureCheck result.success boolean, errors are in result.logs
Using --target node when deploying to BunUse --target bun for Bun-specific optimizations and bytecode
Synchronous password hashing in request handlersUse await Bun.password.hash() async variant in servers

Delegation

  • Project scaffolding: Use Explore agent
  • Performance profiling: Use Task agent
  • Code review: Delegate to code-reviewer agent

If the typescript-patterns skill is available, delegate advanced TypeScript typing questions to it.

References

Comments

Markdown supported