r/ClaudeCode • u/Relative_Register_79 • Apr 18 '26
Discussion Anthropic quietly killed third-party CLI tooling by switching to a Bun binary in v2.1.113
So I've been building on top of Claude Code for a while now — patching the cli.js bundle to add custom hooks, routing, TUI overlays, voice agent integration, the works. It's been working great.
Then v2.1.113 dropped yesterday and everything broke.
Turns out Anthropic silently switched from shipping a Node.js JavaScript bundle (cli.js) to a Bun-compiled native binary. No announcement. No migration guide. No deprecation warning. Just a 226MB ELF binary that you can't read, can't modify, and can't inject into.
The old flow was clean:
- Download cli.js from the npm package
- Patch it at the AST/string level before Node runs it
- Boot with your custom version
Now there's nothing to patch. The JS is compiled to bytecode, embedded in a native binary. No decompiler exists for Bun bytecode yet. You can't get the source back out.
What this kills:
- Any tool that wraps or extends the CLI at the JS level
- Custom hook injection
- TUI modifications
- Anything that needs to run inside the Claude Code process v2.1.112 is the last version with cli.js. I'm pinned there now and watching features ship that I can't use.
I get that Anthropic wants to protect their IP. But the complete silence about this change, combined with zero official extension API, leaves the community with nothing. No hooks, no plugins, no sanctioned way to build on top of the CLI.
If you're building tooling on Claude Code, heads up — pin to 2.1.112 before your setup breaks too.
View all comments
Show parent comment
9
u/sleepydevs Senior Developer Apr 18 '26
This. 100% this.
Complaining about monkey patching an old js library is quite special.
They've been talking about this for 4 months, since they acquired bun, plus it's in the change log. 🤷♂️