> bun
Assists with using Bun as an all-in-one JavaScript/TypeScript runtime, package manager, bundler, and test runner. Use when building HTTP servers, managing packages, running tests, or migrating from Node.js. Trigger words: bun, bun serve, bun install, bun test, bun build, javascript runtime, bun runtime.
curl "https://skillshub.wtf/TerminalSkills/skills/bun?format=md"Bun
Overview
Bun is an all-in-one JavaScript/TypeScript runtime that replaces Node.js, npm, webpack, and Jest with a single binary. It provides native TypeScript support, a high-performance HTTP server (Bun.serve()), a fast package manager, a bundler, and a Jest-compatible test runner with dramatically faster performance.
Instructions
- When creating HTTP servers, use
Bun.serve()which handles 100K+ req/s with built-in WebSocket support, TLS, and streaming responses. - When managing packages, use
bun install(10-30x faster than npm),bun add,bun remove, and preferbun.lock(text format) for readable git diffs. - When bundling, use
Bun.build()with appropriate target ("browser","bun","node"), enable code splitting withsplitting: true, and configure tree shaking. - When writing tests, use
bun testwith Jest-compatible API (describe,it,expect), snapshot testing, mocking withmock.module(), and--coveragefor code coverage. - When doing file I/O, prefer
Bun.file()andBun.write()over Node.jsfsfor significantly faster file operations, and useBun.Globfor pattern matching. - When handling authentication, use
Bun.password.hash()andBun.password.verify()for bcrypt/argon2 instead of npm packages. - When migrating from Node.js, replace
nodewithbunin scripts, keeppackage.jsonunchanged, and note that most npm packages work without modifications. Usebun:sqlitefor embedded databases instead of SQLite npm packages.
Examples
Example 1: Build a high-performance API server
User request: "Create a REST API using Bun's built-in HTTP server"
Actions:
- Create server with
Bun.serve()and route handler - Parse JSON bodies with
request.json()and returnResponseobjects - Add WebSocket upgrade for real-time features
- Use
Bun.passwordfor auth andbun:sqlitefor data storage
Output: A fast API server using only Bun built-ins with no external dependencies.
Example 2: Migrate a Node.js project to Bun
User request: "Switch my Express project from Node.js to Bun"
Actions:
- Replace
npm installwithbun installin CI and local setup - Update
package.jsonscripts to usebun runinstead ofnode - Replace
dotenvwith Bun's built-in.envloading - Switch test runner from Jest to
bun testwith same test files
Output: A Bun-powered project with faster installs, startup, and test execution.
Guidelines
- Use
Bun.serve()for new HTTP servers; it is significantly faster than Express on Bun. - Prefer
Bun.file()andBun.write()over Node.jsfsfor file operations. - Use
bun:sqlitefor local data instead of adding SQLite npm packages. - Use
Bun.passwordfor auth instead ofbcrypt/argon2npm packages for zero native dependencies. - Keep
bun.lock(text format) in git for readable diffs. - Test with
bun testinstead of Jest for the same API with dramatically faster execution. - When targeting browsers, use
Bun.build()withtarget: "browser".
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> xero-accounting
Integrate with the Xero accounting API to sync invoices, expenses, bank transactions, and contacts — and generate financial reports like P&L and balance sheet. Use when: connecting apps to Xero, automating bookkeeping workflows, syncing accounting data, or pulling financial reports programmatically.
> windsurf-rules
Configure Windsurf AI coding assistant with .windsurfrules and workspace rules. Use when: customizing Windsurf for a project, setting AI coding standards, creating team-shared Windsurf configurations, or tuning Cascade AI behavior.