What changed
On October 22, 2026, Bun released v1.4.4 with bun fmt, a built-in formatter covering JavaScript, TypeScript, JSX, CSS, HTML, Vue, Svelte, JSON, YAML, TOML, Markdown and other formats. It reads existing Prettier and oxfmt configurations and supports --check, --staged and --changed workflows. The release also speeds up the built-in bun check TypeScript checker, migrates Yarn 2+ (Berry) lockfiles without re-resolving pinned dependencies, and includes security and runtime fixes. This is distinct from Bun 1.4.3's initial built-in type checker.
Why it matters
Formatting is a recurring cost in developer workflows and CI, particularly in large repositories. Integrating it into a runtime can remove an extra formatter dependency and make pre-commit checks practical on large trees. But compatible configuration does not guarantee byte-identical output: formatter swaps can create noisy diffs or fail on syntax and plugins. Bun users can evaluate consolidation without automatically rewriting the codebase.
Formatter reuse without a wholesale config rewrite
bun fmt reads .prettierrc, prettier.config, .editorconfig, .prettierignore and oxfmt configuration. It includes Tailwind class sorting, Svelte formatting and package.json key sorting, and can format staged files and restage them for Git hooks. Some unsupported Prettier plugins trigger an error and exit code 2, while languages needing an installed plugin such as Astro can fall back to Prettier. The older bun format command still runs a project's format script, so scripts and direct CLI invocations are not interchangeable.
Speed is promising, but the headline numbers are Bun's
Bun reports bun fmt --check taking 59.7 ms versus 17.1 seconds for Prettier 3.9.10 on Prettier's 2,616-file repository, using 48 MB rather than 459 MB peak memory. It publishes pinned commits and reproduction commands. The same release reports 3–6x speedups on several oxfmt workloads, with one fumadocs comparison much higher. Independent articles corroborate the release and note the caveats but do not provide independent reproduction of those timings. Hardware, cache warmth, project composition and options matter.
Configuration compatibility is not output identity
Bun says 9,648 of 9,731 Prettier fixture tests produce identical output, but across 74 real repositories using Prettier only 57 full runs (77%) were byte-for-byte identical. Differences include older formatter versions, plugins, Markdown and unsupported syntax; in one Next.js test one Babel-only proposal file prevented an otherwise mostly identical run. For existing repositories, compare git diffs and run bun fmt --check and --debug-check on a pinned version before switching CI.
Lockfiles and type checking also change
bun install now migrates Yarn Berry lockfiles, retaining pinned versions rather than re-resolving the dependency graph, including workspaces and aliases. Bun also reports substantial improvements to bun check on larger repositories and monorepo project-reference builds, alongside broad TLS, WebSocket, database-client and package-manager security fixes. The release does not by itself establish that a particular earlier vulnerability is remediated without a specific advisory.