Get AI summaries of any video or article — Sign up free
Vercel accuses Cloudflare of stealing thumbnail

Vercel accuses Cloudflare of stealing

Theo - t3․gg·
6 min read

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.

TL;DR

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?

Just Bash emulates Bash in TypeScript with an in-memory filesystem, letting agents explore codebases and run shell-like commands without the cost of a full virtual Linux instance per agent. More importantly, it’s designed to keep agent-controlled code from reaching the native shell where it could execute arbitrary commands, access environment variables, read files, or interfere with other requests/processes. The “fake bash” layer is placed above the riskier parts of the stack so the agent can’t go deeper into host capabilities.

What specific changes in Cloudflare/Shell are described as security regressions?

The account claims Cloudflare/Shell removed the beta disclaimer and deleted references to optional features that increase the attack surface. It also alleges Cloudflare changed the Python implementation to one that (as described) would grant Python full access to the JavaScript host environment, and that security-relevant code from the original was removed. Additionally, Just Bash’s earlier migration away from Pyodide is mentioned as related to the difficulty of making Pyodide secure under Just Bash’s threat model—implying the fork reintroduced risk by discarding the hardening.

How do Vercel and Cloudflare differ in where isolation happens?

On Vercel, developer code typically runs in real server environments (Docker-like) where Node can reach down to the native shell, so isolation is managed by the deployment/runtime boundary and the sandboxing layers built for the app. On Cloudflare, code runs in V8-based isolates (workerd), where each request is isolated at the runtime level. That means Cloudflare’s threat model and available capabilities differ: workerd can’t spawn processes or read files like Node can, so the need for certain Node-specific guardrails is different.

Why is a Bash-like environment more valuable on Cloudflare than on Vercel?

The narrative says Vercel already can support Bash-like workflows, but doing it “below Node” is risky and potentially unsafe for agents. Just Bash moves the bash layer upward to reduce risk and improve parallelism. On Cloudflare, real Bash isn’t available in the same way because workerd doesn’t provide the same native shell access, so a Bash emulation becomes a way to add capability at the edge that otherwise wouldn’t exist.

What role does documentation and packaging play in the dispute?

Even if a fork is legally allowed under Apache 2.0, the account argues that removing warnings and presenting the fork as broadly usable can mislead developers about safety guarantees. The fork’s name (“Cloudflare/Shell”) and its documentation changes allegedly made it look like a drop-in solution, while the original Just Bash readme emphasized beta status and a security model. That mismatch in perceived safety is treated as a major driver of Vercel’s anger.

How does the ending reframe the conflict?

The final portion shifts from technical security claims to community process. Malta says he regrets stirring up unnecessary pain for Sunil Pi and apologizes, portraying the escalation as avoidable. The message is that direct communication—sending a DM before public posts—could have prevented the situation from turning into a broader public drama that damages trust across both communities.

Review Questions

  1. What security mechanisms does Just Bash rely on to prevent host escape, and why would removing them be especially risky for AI agents?
  2. How do Vercel’s Node/Docker-like execution model and Cloudflare’s workerd isolates change the threat model for running “bash-like” functionality?
  3. Why can a permissive-license fork still create conflict when documentation and safety posture differ from the upstream project?

Key Points

  1. 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. 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. 3

    Cloudflare’s fork “Cloudflare/Shell” is criticized for removing beta disclaimers and security-relevant code, including changes to Python execution behavior.

  4. 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. 5

    Forking open-source is legally permissible under Apache 2.0, but changing safety posture without clear warnings can mislead developers.

  6. 6

    The narrative ends with an apology and a call for direct communication (DMs) before public escalation to reduce bad-faith assumptions.

Highlights

Just Bash’s core value is not “Bash in a terminal,” but a sandboxed, agent-friendly emulation designed to prevent host escape.
The conflict centers on alleged removal of safety warnings and hardening in Cloudflare/Shell, including changes tied to Python execution risk.
Vercel and Cloudflare isolate code differently (Node/Docker-like stacks vs. V8 isolates/workerd), so the same “bash” capability carries different risk.
Malta later regrets the public escalation and apologizes to Sunil Pi, arguing that a DM-first approach could have prevented the drama.

Topics

  • Just Bash
  • Cloudflare/Shell
  • Open-Source Forks
  • Agent Sandboxing
  • Workerd Isolates

Mentioned

  • Sunil Pi
  • DDoS
  • V8
  • WASOM
  • MCP
  • VIT
  • WASOM
  • JS