Skip to content
Back to skills

Bun

ASecurity

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.

  • 142 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 27, 2026
developmentjavascripttypescriptgojavasqlnodeexpresstestinggitapi

Works with

  • terminal
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add TerminalSkills/skills --skill bun --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bun?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bun
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/terminalskills-bun/badge)](https://www.skillsdirectory.com/skills/terminalskills-bun)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bun
description: >-
  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.
license: Apache-2.0
compatibility: "Requires Bun installed (macOS, Linux, WSL)"
metadata:
  author: terminal-skills
  version: "1.0.0"
  category: development
  tags: ["bun", "javascript-runtime", "package-manager", "bundler", "typescript"]
---

# 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 prefer `bun.lock` (text format) for readable git diffs.
- When bundling, use `Bun.build()` with appropriate target (`"browser"`, `"bun"`, `"node"`), enable code splitting with `splitting: true`, and configure tree shaking.
- When writing tests, use `bun test` with Jest-compatible API (`describe`, `it`, `expect`), snapshot testing, mocking with `mock.module()`, and `--coverage` for code coverage.
- When doing file I/O, prefer `Bun.file()` and `Bun.write()` over Node.js `fs` for significantly faster file operations, and use `Bun.Glob` for pattern matching.
- When handling authentication, use `Bun.password.hash()` and `Bun.password.verify()` for bcrypt/argon2 instead of npm packages.
- When migrating from Node.js, replace `node` with `bun` in scripts, keep `package.json` unchanged, and note that most npm packages work without modifications. Use `bun:sqlite` for 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:**
1. Create server with `Bun.serve()` and route handler
2. Parse JSON bodies with `request.json()` and return `Response` objects
3. Add WebSocket upgrade for real-time features
4. Use `Bun.password` for auth and `bun:sqlite` for 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:**
1. Replace `npm install` with `bun install` in CI and local setup
2. Update `package.json` scripts to use `bun run` instead of `node`
3. Replace `dotenv` with Bun's built-in `.env` loading
4. Switch test runner from Jest to `bun test` with 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()` and `Bun.write()` over Node.js `fs` for file operations.
- Use `bun:sqlite` for local data instead of adding SQLite npm packages.
- Use `Bun.password` for auth instead of `bcrypt`/`argon2` npm packages for zero native dependencies.
- Keep `bun.lock` (text format) in git for readable diffs.
- Test with `bun test` instead of Jest for the same API with dramatically faster execution.
- When targeting browsers, use `Bun.build()` with `target: "browser"`.

Files in this skill

  • SKILL.md3.5 KB
  • _scores.json1.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.