Why Claude Runs on Electron and Not ClaudeVM
There's a question that hit the top of Hacker News recently: why is the Claude desktop app written in Electron? Electron is a JavaScript app running inside the V8 virtual machine. Claude, the most advanced AI in the world, lives inside a Chrome browser tab dressed up as a native app. Claude itself claims it could rewrite the whole thing as a native macOS or Windows app in an afternoon — translate the Electron code to Swift or C++, done. But Anthropic doesn't. They're right.
Write once, run everywhere. That's the reason. It's cheaper to write, easier to debug, more consistent across platforms. The extra step people always want to add — compile straight to native — is a trap. You gain a little speed and you give up portability, consistency, and iteration velocity. VMs are just better.
V8 proved this. It won in the browser, rivaled only by WASM. It won on mobile with React Native. It won on desktop with Electron. It won on the backend with Node, where its only real competition are also VMs: the JVM and the CLR runtime. None of that happened because JavaScript is a beloved, well-designed language — JavaScript is a mess. V8 won because the VM abstraction is more powerful than the language sitting on top of it.
So follow the thread. There is a new VM. It is more powerful, more general, and easier to write for than V8, and it runs a more ubiquitous language than JavaScript. That language is English. The VM is Claude.
Call it ClaudeVM. Call it LLMVM. The concept is the same. You write plain English. The VM interprets it at runtime. When it needs to produce code, it JITs some throwaway JavaScript or Python, executes it, and discards it. The source code stays in English. The user can read it, edit it, and debug it without learning anything new. I wrote about this last week — I changed half a sentence in English and a single-user app became multi-user. No compilation. No deployment. Claude just understood the new instruction and ran it.
Software will still be huge, trillions of dollars, and everything will still run on compute. But calling it traditional software will be a stretch when the source code looks like plain English and users are editing it themselves. There won't be a compilation step to Rust, won't be a compilation step to assembly. At best there'll be JIT, and the output will be throwaway. Right now the best engineers in the world are figuring out how to bootstrap this VM — how to make the JIT faster, how to tune the runtime. That's what the engineers at Anthropic are doing every day. Skills, tool definitions, computer use — all of it is us master-debugging the early ClaudeVM, and it's a temporary phase.
ClaudeVM doesn't need to be superintelligent. It just needs to be a better runtime engine than V8. It already is. LLMVM is even better than LLVM. We just haven't finished building it yet.
Previously: Claude is a JIT
Enjoyed this essay?
Follow me for more insights on technology, startups, and the future.