Bun v1.3.10 Based on the article, Bun version 1.3.10 introduces a completely rewritten REPL in Zig that starts instantly with features like syntax highlighting, persistent history, and top-level await support. The update also adds the ability to compile HTML files with `--compile --target=browser` for self-contained output, and now fully supports TC39 stage-3 standard ES decorators including the `accessor` keyword and decorator metadata. To install Bun curl -fsSL https://bun.sh/install | bash npm install -g bun powershell -c "irm bun.sh/install.ps1|iex" scoop install bun brew tap oven-sh/bun brew install bun docker pull oven/bun docker run --rm --init --ulimit memlock=-1:-1 oven/bun To upgrade Bun bun upgrade New REPL new-repl Bun's REPL has been completely rewritten in Zig, replacing the previous third-party npm package. The new REPL starts instantly without downloading any packages, and includes a full-featured terminal UI. In the next version of Bun — Jarred Sumner @jarredsumner Bun gets a native REPL pic.twitter.com/RLtaUymgWu February 25, 2026 Features: Copy to clipboard - .copy command copies the expression to clipboard Top-level await - you can use it. ESM import & require - all the ways to load modules just work. Syntax highlighting — JavaScript code is colorized as you type. Line editing with Emacs keybindings — Ctrl+A/E to jump to start/end of line, Ctrl+K/U to kill to end/start, Ctrl+W to delete word backward, Ctrl+L to clear screen, and arrow key navigation. Persistent history — Command history is saved to ~/.bun repl history and navigable with Up/Down arrows or Ctrl+P/N . Tab completion — Complete object properties and REPL commands. Multi-line input — Automatic continuation detection for incomplete expressions. REPL commands — .help , .exit , .clear , .load , .save , .editor . Special variables — holds the last expression result, error holds the last error. Proper REPL semantics — const and let declarations are hoisted to var for persistence across lines, top-level await works out of the box, import statements are converted to dynamic imports, and object literals like { a: 1 } are detected without needing parentheses: js const x = 42 x + 1 43 await fetch "https://example.com" .then r = r.status 200 import { readFile } from "fs/promises" { name: "bun", version: Bun.version } { name: "bun", version: "1.3.1" } --compile --target=browser for self-contained HTML output --compile --target=browser for self-contained HTML outputYou can now use bun build --compile --target=browser to produce self-contained HTML files with all JavaScript, CSS, and assets inlined directly into the output. This supports TypeScript, JSX, React, CSS, ESM, CJS, and everything else Bun's bundler already supports. This is useful for distributing .html files that work via file:// URLs without needing a web server or worrying about CORS restrictions.