🎯

Bun

v1.9.0

Validation and quality enforcement for Bun.js projects.

Installation

Install han binary (required for hooks to work):

curl -fsSL https://han.guru/install.sh | bash

Then install this plugin:

han plugin install jutsu-bun

Overview

Validation and quality enforcement for Bun.js projects.

What This Jutsu Provides

Validation Hooks

  • Bun Type Check: Runs Bun's build type checker to ensure TypeScript code is valid
  • Fast Validation: Leverages Bun's exceptional performance for rapid feedback

Skills

This jutsu provides the following skills:

  • bun-runtime: Working with Bun's runtime APIs including file I/O, HTTP servers, WebSockets, and native APIs
  • bun-testing: Writing tests with Bun's built-in test runner, assertions, mocking, and snapshot testing
  • bun-bundler: Bundling JavaScript/TypeScript code with Bun's fast bundler for different targets
  • bun-package-manager: Managing dependencies with Bun's package manager, workspaces, and lockfiles
  • bun-sqlite: Working with SQLite databases using Bun's built-in high-performance SQLite driver

Installation

Install with npx (no installation required):

han plugin install jutsu-bun

Usage

Once installed, this jutsu automatically validates your Bun code:

  • When you finish a conversation with Claude Code
  • When Claude Code agents complete their work
  • Before commits (when combined with git hooks)

The validation runs bun build --target=bun --no-bundle to check for type errors without actually bundling your code.

Requirements

  • Bun 1.0.0 or higher
  • TypeScript (for type checking)

Why Bun?

Bun is an all-in-one JavaScript runtime and toolkit designed for speed:

  • Fast Runtime: 3x faster than Node.js for many operations
  • Built-in Tools: Bundler, test runner, package manager all included
  • Web Standard APIs: First-class support for Web APIs like fetch, WebSocket
  • TypeScript Native: Run TypeScript and JSX directly without transpilation
  • npm Compatible: Works with existing npm packages
  • SQLite Built-in: High-performance SQLite driver included

Features Covered by Skills

Runtime APIs

  • File I/O with Bun.file() and Bun.write()
  • HTTP servers with Bun.serve()
  • WebSocket support
  • Password hashing
  • Environment variables
  • Shell command execution with Bun.$

Testing

  • Built-in test runner
  • Jest-compatible API
  • Mocking and spies
  • Snapshot testing
  • Coverage reporting
  • Watch mode

Bundler

  • Fast bundling for multiple targets (bun, browser, node)
  • Tree shaking
  • Code splitting
  • Minification
  • Source maps
  • Plugin system

Package Manager

  • Fast dependency installation
  • Binary lockfile (bun.lockb)
  • Workspace support for monorepos
  • npm/yarn/pnpm compatibility
  • Global packages
  • Link local packages

SQLite

  • Native SQLite driver
  • Prepared statements
  • Transactions
  • Migration support
  • High performance

Examples

Create a Simple HTTP Server

Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Hello from Bun!");
  },
});

Run Tests

import { test, expect } from "bun:test";

test("addition", () => {
  expect(1 + 1).toBe(2);
});

Bundle Your Code

bun build src/index.ts --outdir dist --target browser --minify

Install Dependencies

bun add express
bun add -d @types/express

Use SQLite

import { Database } from "bun:sqlite";

const db = new Database("mydb.sqlite");
db.run("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");
db.run("INSERT INTO users (name) VALUES (?)", ["Alice"]);

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT License - See LICENSE for details.

Skills

Hooks

⚠

Token Usage Notice

Hooks run automatically during Claude Code sessions and their output is sent to the model for processing. This may increase token usage and associated costs. Consider disabling hooks you don't need via han-config.yml.

🛑

Stop

Runs when the main Claude Code agent has finished responding. Can verify task completion, check quality gates, or ensure documentation requirements are met before the session ends.

🛑

SubagentStop

Runs when a Claude Code subagent (Task tool call) has finished responding. Can validate subagent outputs, enforce quality standards, or trigger additional workflows after delegated tasks complete.