LLMSkillHub
mirroredCopied from code-yeongyu/senpi under MIT. code-yeongyu has not claimed this page, and is not affiliated with LLM SkillHub.

code-yeongyu / bun-1-4

Read before a js eval cell that installs a package, spawns a server or PTY, or starts a long run, and before any bun -e, script, server, CLI, test, bundle, or package-management work: this session's eval js kernel runs Bun 1.4+ (this skill is present only when it does). Bun 1.4 ships builtins that replace 15+ npm deps — check here BEFORE installing sharp, puppeteer/playwright (scraping), marked, node-cron, node-pty, concurrently, serve-static, tar, json5, fast-xml-parser, string-width. Triggers: eval js, bun, Bun.serve, bun test, bun build, bun install, bun run, image resize, headless browser, markdown render, cron, PTY.

0
SKILL.md
5.2 KB

Bun 1.4 — Use the Builtins First

Bun 1.4 (2026) ships builtins that replace most utility npm packages. Before adding a dependency or writing a workaround, check the capability map below — if Bun ships it, use the builtin. This skill is loaded because this session's eval js kernel runs Bun >= 1.4; on other machines or pinned projects, confirm with bun --version ([v1.3.x]/[v1.4.0] tags in the references give exact minimums). Release post: <https://bun.com/blog/bun-v1.4>

Capability map — what you can do now

You want to...UseReplacesRef = references/<name>.md
Resize/convert/rotate imagesBun.file(p).image().resize().webp().write()sharpruntime-apis
Headless browser: navigate, click, screenshot, evaluate, CDPnew Bun.WebView()puppeteer, playwright (scraping)runtime-apis
Markdown → HTML / React / ANSIBun.markdown.html() / .react() / .render()marked, react-markdownruntime-apis
Schedule cron jobsBun.cron()node-cronruntime-apis
Drive a PTY (bash, vim, TUIs) from JSBun.spawn([...], { terminal })node-ptyruntime-apis
Run package scripts concurrently, glob-matchedbun run --parallel "build:*"concurrently, npm-run-allruntime-apis
Parse JSON5 / JSONL / JSONC / XML / TOML; tarballsBun.JSON5/.JSONL/.JSONC/.XML/.TOML, Bun.Archivejson5, ndjson, jsonc-parser, fast-xml-parser, @iarna/toml, tarruntime-apis
ANSI-aware terminal text: width, slice, wrapBun.stringWidth(), Bun.sliceAnsi(), Bun.wrapAnsi()string-width, slice-ansi, wrap-ansiruntime-apis
Call C libraries 3x faster, plain strings backbun:ffi (buffer_length, cstring)—runtime-apis
Serve a static dir (ETag/Range/304 handled)Bun.serve({ routes: { "/x/*": { dir } } })express.static, serve-static, sirvhttp-networking
HTTP/3 server; fetch protocol/compress/proxyhttp3: true, fetch(url, { protocol, compress, proxy })—http-networking
Tests across CPU workers / CI shards / changed files / flaky retrybun test --parallel --shard=1/3 --changed=main --retryjest/vitest infratest
Kill "passes alone, fails in suite" bugsbun test --isolatevitest default behaviortest
React Compiler auto-memoizationbun build --react-compilerbabel-plugin-react-compilerbuild
Embed assets/dirs into a single-file executablebun build --compile --asset ./publicpkg hacksbuild
Compile-time feature flags, in-memory bundling, metafilebun:bundle feature(), files:{}, metafile: trueesbuild define/pluginsbuild
Diff package versions, fix vulns, dedupe/prune, license auditbun pm diff, bun audit fix, bun dedupe, bun prune, bun pm licensesnpm-diff, npm audit fixinstall
7x faster CI installs (global virtual store)linker = "isolated" in bunfig.tomlpnpm storeinstall
Profile CPU/heap/bundle as grep-able Markdownbun --cpu-prof-md, --heap-prof-md, bun build --metafile-mdChrome DevTools round-tripdev-tooling
Native REPL; render Markdown in terminalbun repl, bun ./README.mdnode repl, glowruntime-apis
Run Playwright, vitest, Next.js 16, OpenTelemetry, dd-tracethey now just workNode.jsnode-compat-platforms

Free wins (no code change): 2x lower CPU, 13-48% less server memory, 2-2.5x faster startup — full numbers in [performance](references/performance.md).

Operating rules

  1. Eval-first. The eval js kernel runs on Bun (that is why this skill is present): call Bun.* APIs directly inside js cells. Reach for bash or a spawned bun <file> / bun -e only for CLI surfaces (bun test, bun build, bun pm) or work that needs a separate process.
  2. Builtin-first. The Replaces column above is a ban list for new dependencies, in production code, test helpers, and one-off scripts alike.
  3. Read the matching reference before using an unfamiliar API — signatures and caveats (e.g. Bun.markdown HTML is unsanitized, HTTP/3 is experimental) live there, not here.
  4. Upgrading a project to 1.4 or debugging behavior that changed? Read [breaking-changes](references/breaking-changes.md) first — YAML/TOML strictness, .xml/.css import semantics, Bun.$ globbing, fetch header combining, and WebSocket close timing all changed.
  5. TLS errors after upgrade are usually intentional — 1.4 tightened certificate verification across fetch, tls.connect, Bun.connect, RedisClient. See [security](references/security.md) before loosening anything.