Vercel accuses Cloudflare of stealing
Based on Theo - t3․gg's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.
Just Bash is a TypeScript Bash emulation for AI agents that uses an in-memory filesystem to avoid per-agent full Linux virtualization costs.
Briefing
Vercel’s CTO-built “Just Bash” is at the center of a dispute after Cloudflare forked it into “Cloudflare/Shell,” and the fork allegedly removed key safety warnings and security hardening that the original project treats as essential for early, fast-moving agent sandboxing. The conflict matters because it’s not just about open-source reuse: it’s about whether a fork presented as broadly usable could mislead developers into deploying a less-protected environment for AI agents that need to run “bash-like” commands.
Just Bash is a TypeScript emulation of Bash designed for AI agents, using an in-memory filesystem so agents can explore codebases without paying the cost of giving each agent a full virtual Linux instance. That design is tightly coupled to a security model meant to prevent host escape—situations where agent-controlled code can break out of the sandbox and execute real commands on the underlying system. Malta (the Just Bash maintainer) emphasizes that the project is under heavy development and includes defense-in-depth layers such as disabling dangerous JavaScript evaluation paths (e.g., `eval` and the `Function` constructor) and checks aimed at prototype-pollution-prone patterns.
Cloudflare’s fork, posted as “Cloudflare/Shell” under the permissive Apache 2.0 license, triggered backlash because it reportedly stripped out the “beta” disclaimer and removed references to optional features that increase the attack surface. More critically, the fork replaced the Python implementation approach with one that, in the original author’s view, would “immediately get you owned” by granting Python full access to the JavaScript host environment—while also removing security-relevant code that Just Bash previously used to constrain that risk. The argument is that Just Bash’s safeguards were built for a Node.js-style threat model, and removing them undermines the very reason the emulation exists.
The dispute also reflects deeper platform incentives. Vercel runs developer code in real Docker-like environments where Node can reach down to the native shell (meaning an agent that can access real Bash could potentially exec commands, read files, and interfere with other processes). Just Bash exists to move the “bash layer” upward into a controlled emulation so agents can’t go deeper into the host. Cloudflare, by contrast, runs code in V8-based isolates (workerd) with a different isolation boundary and fewer capabilities than Node—so Cloudflare can’t simply run Node packages the same way, and it can’t execute real Bash commands in the same manner. That mismatch helps explain why Cloudflare would want a Bash-like experience at the edge.
Still, the tone of the fallout turns on process and trust. Malta’s account suggests the fork was created in good faith by Sunil Pi (3.1), a Cloudflare leader who publicly praised Just Bash and was trying to make it work for Cloudflare’s agent stack. But the fork’s packaging and documentation allegedly made it look like a safe, general solution, even though the original project warned otherwise. The result: Vercel interpreted the fork as another risky “ecosystem fork” after earlier Cloudflare controversies, while Cloudflare framed it as enabling a capability developers can’t otherwise get at the edge.
By the end, the narrative shifts from technical grievances to community damage control: Malta later regrets the public escalation and apologizes to Sunil Pi, urging more direct communication (“send a DM first”) rather than public posts that assume bad intent. The core takeaway is that the Just Bash vs. Cloudflare/Shell fight is really about security boundaries, documentation clarity, and how quickly open-source collaboration can sour when incentives and threat models don’t align.
Cornell Notes
Just Bash is a TypeScript emulation of Bash built for AI agents, using an in-memory filesystem so agents can work without launching full virtual Linux environments. Its value depends on a defense-in-depth security model meant to prevent host escape, including disabling dangerous JavaScript execution paths and checks against prototype-pollution patterns. Cloudflare forked it into “Cloudflare/Shell,” but the fork allegedly removed the beta disclaimer and stripped out security-relevant code—especially around Python execution—making it appear safer and more broadly usable than the original. The dispute highlights how “same code” can mean different risk depending on platform threat models (Vercel’s Node/Docker-like stack vs. Cloudflare’s V8 isolates/workerd). The fallout also underscores that documentation and communication matter as much as licensing when forks change safety posture.
Why does Just Bash exist instead of giving agents real Bash access?
What specific changes in Cloudflare/Shell are described as security regressions?
How do Vercel and Cloudflare differ in where isolation happens?
Why is a Bash-like environment more valuable on Cloudflare than on Vercel?
What role does documentation and packaging play in the dispute?
How does the ending reframe the conflict?
Review Questions
- What security mechanisms does Just Bash rely on to prevent host escape, and why would removing them be especially risky for AI agents?
- How do Vercel’s Node/Docker-like execution model and Cloudflare’s workerd isolates change the threat model for running “bash-like” functionality?
- Why can a permissive-license fork still create conflict when documentation and safety posture differ from the upstream project?
Key Points
- 1
Just Bash is a TypeScript Bash emulation for AI agents that uses an in-memory filesystem to avoid per-agent full Linux virtualization costs.
- 2
The project’s security model is defense-in-depth, including disabling dangerous JavaScript execution paths and checks aimed at prototype-pollution-prone patterns.
- 3
Cloudflare’s fork “Cloudflare/Shell” is criticized for removing beta disclaimers and security-relevant code, including changes to Python execution behavior.
- 4
The dispute is driven by mismatched threat models: Vercel’s Node stack can reach the native shell, while Cloudflare’s workerd isolates constrain what code can do.
- 5
Forking open-source is legally permissible under Apache 2.0, but changing safety posture without clear warnings can mislead developers.
- 6
The narrative ends with an apology and a call for direct communication (DMs) before public escalation to reduce bad-faith assumptions.