Claude Code uses Bun written in Rust now
Claude Code v2.1.181 quietly swapped its JavaScript Bun runtime for the Rust rewrite — and almost nobody noticed, which is the point.
By Dillip Chowdary • Jul 19, 2026 • Source: simonwillison.net
Claude Code v2.1.181 quietly swapped its JavaScript Bun runtime for the Rust rewrite — and almost nobody noticed, which is the point.
Claude Code v2.1.181, released on June 17th, 2026, switched from the original JavaScript implementation of Bun to Bun rewritten in Rust. The change shipped without a migration step for users.
What shipped
A versioned cut is a contract with anyone who pinned the last one. Claude Code uses Bun written in Rust now should be read as a changelog first and a launch second. If you cannot find the changelog, you do not have enough to upgrade.
Claude Code v2.1.181 quietly swapped its JavaScript Bun runtime for the Rust rewrite — and almost nobody noticed, which is the point. Claude Code v2.1.181, released on June 17th, 2026, switched from the original JavaScript implementation of Bun to Bun rewritten in Rust.
What changed for builders
Builders should diff the release notes for APIs, defaults, and removed flags. That list is the migration. Anything not on it is a rumor until it shows up in a follow-up patch.
A versioned cut is a contract with anyone who pinned the last one. Claude Code uses Bun written in Rust now should be read as a changelog first and a launch second.
How to install or upgrade
Install via the vendor's documented channel. Snapshot config, roll through staging, keep a one-command rollback. Time-box the canary. If the release has no documented rollback, that is the first risk you escalate.
Advertisement
Tech Pulse Daily
Developer Action Items
- ☐ Diff the official changelog for Claude / GitHub 2.1.181 before you bump — APIs, defaults, and removed flags only.
- ☐ Install through the vendor's documented channel in staging; keep a one-command rollback and time-box the canary.
- ☐ Grep your repo for old flag names, lockfile pins, and plugin versions that the notes mark as breaking.
- ☐ Prefer the first patch cut over the day-zero tag unless you have a reason to be on the leading edge.
- ☐ If the official advisory did not name a region, plan, or SKU, screenshot the official availability line before you promise it to users.
Get tomorrow's pulse first
Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.
If you cannot find the changelog, you do not have enough to upgrade. Builders should diff the release notes for APIs, defaults, and removed flags.
Gotchas and compatibility
Gotchas hide in transitive deps, license files, and anything that touches auth or storage. Read those sections twice. Then grep your own repo for the old flag names so you are not surprised in prod.
Anything not on it is a rumor until it shows up in a follow-up patch. Snapshot config, roll through staging, keep a one-command rollback.
What to watch next
Watch the first patch release. If it arrives inside a week, the original cut was not as boring as the announcement implied. Pin to the patch, not the day-zero tag, unless you have a reason.
If the release has no documented rollback, that is the first risk you escalate. Gotchas hide in transitive deps, license files, and anything that touches auth or storage.
A 3–5 minute news post is a briefing, not a runbook. Keep simonwillison.net and the vendor's primary page in another tab, quote only what they printed, and write down the single decision this story forces (upgrade, wait, or ignore) before you Slack it to the rest of the team. If you need more than that decision, you want the primary docs or a later engineering deep-dive — not another recap of Claude Code uses Bun written in Rust now.
When you brief someone else on Claude Code uses Bun written in Rust now, lead with the surface that moved and the decision you need from them. Do not paste the whole thread. If you cannot name the surface — API, policy, model, hardware, or commercial terms — you are not ready to brief. Go back to simonwillison.net and the vendor page until you can. That extra ten minutes is cheaper than a wrong upgrade or a missed exposure.
Treat day-one coverage of Claude Code uses Bun written in Rust now as a pointer, not a specification. simonwillison.net is useful for names, dates, and the claim as stated; it is not a substitute for the changelog, the advisory, or the contract clause that actually binds you. If those artifacts are not public yet, wait. Acting on a paraphrase is how teams ship the wrong flag or miss the one dependency that was actually in scope.
If Claude Code uses Bun written in Rust now touches something you operate, open a ticket with the primary link, the owner, and the verification step — not a Slack emoji reaction. If it does not touch you, write that down too so the next person does not re-open the question. Either way, the artifact is the point. Recaps of recaps of simonwillison.net do not help the on-call.
Advertisement