The Aboard Newsletter

The Big Bun Fight

The clash between Bun, Zig, and Anthropic is about more than online drama.

by -
A businessman with the Bun bao for a head carrying his box of items away from an office, clearly just fired. Three people sit at a conference room behind him.

He’ll land on his feet.

If you’re a particular kind of old-school nerd, you’re used to drama from the open-source world—people fighting about code, or more typically, about policies involving code, on mailing lists, forever. Why do they fight? It’s simple: Those same things that inspire people to give their intellectual property away to the world also, very often, inspire them to defend their intellectual and ideological turf—with an intensity that might shock an outsider.

Vibe coding has become a cultural fault line in this world. See, for example, the “Open Slopware” repository, listing hundreds of examples of supposedly LLM-poisoned code, complete with “Slop free” alternatives for the concerned user. The “Slopfree Software Index,” in contrast, is a guide to code projects that refuse AI submissions, with links to their policies. It is a much shorter list. Projects reject AI coding for many reasons. Some prohibit LLM-generated code on legal grounds, related to licensing; others argue that AI submissions damage community engagement; others still argue against the extractive nature of AI.

Now on to the most recent drama. Bun is a JavaScript runtime. This means it brings together all kinds of libraries, code, and tools to let you run JavaScript on a computer. There are other runtimes, but Bun is fast and modern in ways that others are not. It has millions—maybe tens of millions—of users. It’s also what they use to build Claude Code. And (this is kind of meta, so hold on) Bun itself is written in a language called Zig. Zig is a lower-level language that is modern and cool in the kind of way that a new subway tunnel or solar technology is cool. It’s infrastructure. It replaces older languages like C or C++.

In general, the lower you go down the stack, the more rules-driven the community is. Zig is no exception, and it has a serious no-LLM policy:

  • No LLM-generated content, whether it be code or prose.
  • No paraphrasing LLM-generated content.
  • No LLMs for editing, including fixing spelling or grammatical errors.
  • No LLMs for translation. English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.
  • No LLMs for brainstorming and then sharing the results of that brainstorming, even if you create the prose. If you use a chatbot to give you advice on a comment on the issue tracker, that comment is unwelcome.
  • No LLMs for finding bugs.
  • No talking about use of chatbot/LLM services.

This isn’t simply because they hate new things. Zig, as a big open-source platform, wants to build a contributor network, not to simply squash bugs. As their VP of Community, Loris Cro, wrote, “For us, the ability to provide contributors with an engaging ecosystem where they can improve their systems thinking and interact with other competent, trusted and prolific engineers is a critical aspect of our business model.” If all they did was triage LLM requests, they believe, the community wouldn’t advance.

But Zig’s stance does present a challenge for the Bun team, because, not long ago, Anthropic bought Bun. So they’re obviously all-in on LLM-assisted coding. They even found ways to improve Zig, increasing its speed on critical functions, but Zig wanted nothing to do with those Claude-enabled fixes. Bun’s requests were annoying to Zig, and Zig’s policy was frustrating to Bun. It’s impossible to say any of this out loud without sounding completely ridiculous but there it was: Bun and Zig, fighting.

Given that all of this is open source, Bun could theoretically have “forked” Zig and run their own version, updating it themselves. But the ideological mismatch looked too profound to paper over. They had other, technical problems with Zig—and they said to hell with it, chose another language, and ported their entire universe over to Rust, a more established, less dogmatically managed language. The Bun team used an early version of the new Claude model, Fable 5, for the rewrite. As Bun leader Jarred Sumner wrote:

Historically, rewrites are a terrible idea. Excluding comments, Bun is 535,496 lines of Zig. A rewrite in another language would take a small team of engineers a full year. It would mean freezing bugfixes, security fixes or feature development for that time. The least risky approach to getting something shippable would be a mechanical port from Zig to Rust, with the minimal number of behavioral changes, using the exact same test suite we already use for testing Bun.

But in this case, after hacking around, they unlocked it. It cost about $165,000 in tokens (presumably there’s an employee discount). It was done in 11 days. It probably represents a million or two dollars in work. So it’s a big deal—incredibly fast and incredibly cheap if it works, and right now, it seems to work well. It’s also the sort of project LLMs are great at. JavaScript has zillions of tests, and it’s “well-understood” by LLMs. There was plenty of existing code to build from. You could instruct the AI to go file by file, function by function, and test everything as it went, fixing the bugs it found.

As to the Zig leadership? Zig President Andrew Kelly says they saw this coming

…[A]nd we were rooting for it! The acquisition by a large AI company was a burden, because even the indirect connection of Claude being written in Bun being written in Zig caused not only a surge of drive by slop contributions, but also an influx of tasteless AI enthusiasts into Zig communities who had to be informed that it’s antisocial to paste LLM output into forum posts. For a moment, I feared Zig’s identity would become known colloquially as a programming language associated with AI.

When Jarred announced the Rust rewrite, we were ecstatic. It seemed too good to be true. I have to admit, I didn’t think the technology was there, to pull off this stunt. But he did it, and now I’m metaphorically sipping delicious tea from a mug that says “It Tastes Like It’s Not My Problem Anymore”.

Kelly also noted, with remarkable transparency:

While I resent Jarred for making Bun into an embarrassment for Zig, and I blame him partially for some of the slop we’ve been dealing with, and I stand by my criticism of his leadership, I also empathize with him. He has different values than me, he wants different things out of life than me. But I think he’s actually happy and successful exactly where he is. He figured out how to accomplish all the stuff that he wants. He gets to live out his productivity fantasy fever dream, he’s probably already super wealthy. He has minor tech celebrity status. Honestly, I think he did well for himself, and despite my feelings of resentment, and despite the fact that I find myself battling the marketing arm of Anthropic, I don’t wish him any ill will. Even in the midst of my frustration, I am happy for him and his success, by his own standards.

And well, there you go. After a lot of fights, the divorce is final. If you feel the twisted urge to read more, Simon Willison has been tracking details for some time.

People (and companies) will run their castles in line with their own values, and if we want to use what they make, we have to follow their rules. Zig gives away their code under the MIT License. You can make your own Zig and call it Zag, or Ziggy, or Giz and go on with your life. Or you could do what Anthropic did, and port things to Rust. What cost $165,000 today will probably be far cheaper in a year or two.

At one level, this is normal open-source drama. Conflict is inevitable when people share resources. Open source is less about code than you’d think. Yes, you can always “take the code,” but “forking” code and going your own way has always been understood as an expensive, complicated option. The world of tech has always had weird partnerships—digital anarchists and the U.S. Defense Department collaborating on cryptography tools, Microsoft contributing to Linux, and on and on. That collaboration-across-ideologies concept is built into nerd culture; at some hacker conferences people played a game called “Spot the Fed.” The Feds get T-shirts.

But look into our LLM-driven future: The incentive to resolve these conflicts is lowering radically, almost by the minute. If you don’t like an open-source project’s governance, you actually can fork the code and have an LLM maintain and update it. It’ll probably work okay. Don’t like the underlying language? Port your system to a different language. It’ll probably work okay. LLMs are enabling immense productivity. They are also enabling people to stand up mid-argument, walk out, and never come back.

A lot of focus in the AI discourse has been on how easy it is to make things now, and if those things are good, and what that means to individual craft and skill. But the most critical skill of all in software—truly—is being able to talk to another human about what they need, and then to work with a team to make something better. Collaboration is probably the most difficult skill of all to master (I’m frequently terrible at it), and it’s the easiest skill to lose unless you practice it. Interacting with humans is just plain hard sometimes. 

The AI coding tools are winning out in the industry—just contrast the much longer Codeslop list with the short Slopfree list—but they are one-person tools. The vision of the future they’re promoting is something like, “Tell your army of bots to make something and they go off and do it and you issue a big pull request and your work is done for the day.” And in a funny way, Claude Code or Codex are designed to help you do other people’s work—they encourage it. They want to help engineers design and help non-coders code and help product managers ship whole platforms on their own.

That can be incredibly empowering, but we’re seeing how it’s also a curse. The Zig/Bun battle is a symptom of this. It was time for them to break up—Bun, as part of Anthropic, the fastest-growing software company in history, needs full control of its stack, and Zig, with its own system of governance, is not designed to provide that, and also its leadership is grossed out by Anthropic’s core product.

But at the same time, when people stop working together, despite their ideological differences, something really important is lost. As primates, resolving conflict is very, very good for us. I have to think hard to remember specific bits of code I wrote, but I can remember everyone I ever worked with. Ideas and skills grow and spread with the friction of collaboration. That’s what the Zig team clearly believes, so they ban non-human code. And at the same time, what the Bun team did switching to Rust is utterly transformative and opens up enormous possibilities. I don’t think there’s one clear path here. While much is being gained, some things are also being lost.

I enjoy my new AI superpowers, but I also keep seeing people—from interns to CEOs—stumbling over each other’s roles, doing a million jobs at once, all to avoid another Zoom call. I empathize, because I also love not dealing with people while I stare at a computer. I don’t think the AI companies intended to build a suite of tools designed to help people avoid collaboration, but they did. (There’s no “I” in team, and there’s no “we” in AI.) As a result, when it comes to AI, people often ask, “How do I use this?” but I hardly ever hear people ask, “How can we use this together?” We’ll muddle through like always, but I want to call it out: Digital solipsism is not a feature, it’s a bug. And it’s one bug that an LLM can’t fix.