6 ms·
The thing I most want to use this (or some other WASM Linux engine) for is running a coding agent against a virtual operating system directly in my browser. Cl
by simonw 8mo ago
The thing I most want to use this (or some other WASM Linux engine) for is running a coding agent against a virtual operating system directly in my browser.
Claude Code / Codex CLI / etc are all great because they know how to drive Bash and other Linux tools.
The browser is probably the best sandbox we have. Being able to run an agent loop against a WebAssembly Linux would be a very cool trick.
I had a play with v86 a few months ago but didn't quite get to the point where I hooked up the agent to it - here's my WIP: https://tools.simonwillison.net/v86 https://tools.simonwillison.net/v86 - it has a text input you can use to send commands to the Linux machine, which is pretty much what you'd need to wire in an agent too.
In that demo try running "cat test.lua" and then "lua test.lua".
- jraph 8mo agoSimon, this HN post didn't need to be about Gen AI. This thing is really inescapable those days.
- simonw 8mo agoParallel thread: https://news.ycombinator.com/item?id=47311484#47312829 https://news.ycombinator.com/item?id=47311484#47312829 - "I've always been fascinated by this, but I have never known what it would be useful for." I should have replied there instead, my mistake.
- darig 8mo ago[dead]
- stavros 8mo agoI don't know man, I didn't see anyone say "this post didn't need to be about <random topic>", HN has just become allergic to LLMs lately. I'm excited about them and I think discussion on how to combine two exciting technologies are exactly what I'd like to see here.
- bakugo 8mo agoHas there ever been any other topic that was not only the subject of the majority of submissions, but also had a subset of users repeatedly butting into completely unrelated discussions to go "b-but what about <thing>? we need to talk about <thing> here too! how can I relate this to <thing>? look at my <thing> product!"? You can't just roll in to a random post to tell people about your revolutionary new AI agent for the 50th time this week and expect them not to be at least mildly annoyed.
- stavros 8mo agoI'm with you, but he wasn't telling us about his agent, he was saying "this is a cool technology and I've been wanting to use it to make a thing". The thing just happened to be LLM-adjacent.
- bakugo 8mo agoAlmost all of his comments "just happen" to be LLM-adjacent. At some point it stops "just happening" and it becomes clear that certain people (or their AI bots) are frequenting discussion spaces for the sole purpose of seeking out opportunities to bring up AI and self-promote.
- stavros 8mo agoSimon has been here since way before LLMs were a thing, and it's fairly obvious (to me, at least) that he's genuinely excited about LLMs, he's not just spamming sales or anything.
- yokoprime 8mo agoYou are not reading his material i suppose? It’s really one of the better sources for informed takes on llms
- bakugo 8mo agoI just went and read one of his recent posts at: https://simonwillison.net/2026/Mar/5/chardet/ https://simonwillison.net/2026/Mar/5/chardet/ The entire thing is just quotes and a retelling of events. The closest thing to a "take" I could find is this: > I have no idea how this one is going to play out. I’m personally leaning towards the idea that the rewrite is legitimate, but the arguments on both sides of this are entirely credible. Which effectively says nothing. It doesn't add anything the discussion around the topic, informed or not, and the post doesn't seem to serve any purpose beyond existing as an excuse to be linked to and siphon attention away from the original discussion (I wonder if the sponsor banner at the top of the blog could have something to do with that...?) This seems to be a pattern, at least in recent times. Here's another egregious example: https://simonwillison.net/2026/Feb/21/claws/ https://simonwillison.net/2026/Feb/21/claws/ Literally just a quote from his fellow member of the "never stops talking about AI" club, Karpathy. No substance, no elaboration, just something someone else said or did pasted on his blog followed by a short agreement. Again, doesn't add anything or serve any real purpose, but was for some reason submitted to HN[1], and I may be misremembering but I believe it had more upvotes/comments than the original[2] at one point. [1] https://news.ycombinator.com/item?id=47099160 https://news.ycombinator.com/item?id=47099160 [2] https://news.ycombinator.com/item?id=47096253 https://news.ycombinator.com/item?id=47096253
- yokoprime 8mo agoWhat topics are allowed in your opinion? I very much enjoyed Simon’s comment as it is a use case I also was thinking of.
- grimgrin 8mo agoa bit cute that you interacted with the 1 AI thread. there are other threads!
- brumar 8mo agoWhy not leting upvotes do their thing? I enjoyed this comment.
- dang 8mo agoIt's normal for HN to be preoccupied with the major technical trend of the moment, and this is unquestionably the biggest technical trend in many years. People can argue about where to insert it in the list, but it is certainly in the top 5 of many decades (smartphones, web, PCs, etc.) That's why it's inescapable. Your complaint isn't really about simonw's comment, but rather the fact that it was heavily upvoted - in other words, you were dissenting from the community reaction to the comment. That's understandable; in fact it's a fundamental problem with forums and upvoting systems: the same few massive topics suck in all the smaller ones until we get one big ball of topic mud: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20generic%20black%20hole&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que....
- apignotti 8mo agoWe are working on exactly this: https://browserpod.io https://browserpod.io For a full-stack demo see: https://vitedemo.browserpod.io/ https://vitedemo.browserpod.io/ To get an idea of our previous work: https://webvm.io https://webvm.io
- otterley 8mo agoHow’s performance relative to bare metal or hardware virtualization?
- johndough 8mo agoI ran two experiments: ~20x slower for a naive recursive Fibonacci implementation in Python (1300 ms for fib(30) in this VM vs 65ms on bare metal. For comparison, CPython directly compiled to WASM without VM overhead does it in 140ms.) ~2500x slower for 1024x1024 matrix multiplication with NumPy (0.25 GFLOPS in VM vs 575 GFLOPS on bare metal).
- apignotti 8mo agoThis is not correct. You are using WebVM here, not BrowserPod. WebVM is based on x86 emulation and JIT compilation, which at this time lowers vector instructions as scalar. This explains the slowdowns you observe. WebVM is still much faster than v86 in most cases. BrowserPod is based on a pure WebAssembly kernel and WebAssembly payload. Performance is close to native speed.
- johndough 8mo agoI see. I thought they were the same and https://vitedemo.browserpod.io/ https://vitedemo.browserpod.io/ failed to load, so I was not able to test there.
- apignotti 8mo agoDemo works as expected for me, please share information if possible or join our Discord for further help: https://discord.leaningtech.com https://discord.leaningtech.com
- the_mitsuhiko 8mo ago> The thing I most want to use this (or some other WASM Linux engine) for is running a coding agent against a virtual operating system directly in my browser. That exists: https://github.com/container2wasm/container2wasm https://github.com/container2wasm/container2wasm Unfortunately I found the performance to be enough of an issue that I did not look much further into it.
- stingraycharles 8mo agoDid anyone expect anything different though, when running a full-blown OS in JavaScript?
- deleted 8mo ago[deleted]
- pancsta 8mo agoWASM != JS (fortunately)
- d_philla 8mo agoCheck out Jeff Lindsay's Apptron (https://github.com/tractordev/apptron https://github.com/tractordev/apptron), comes very close to this, and is some great tech all on its own.
- progrium 8mo agoIt's getting there. Among other things, it's probably the quickest way to author a Linux environment to embed on the web: https://www.youtube.com/watch?v=aGOHvWArOOE https://www.youtube.com/watch?v=aGOHvWArOOE Apptron uses v86 because its fast. Would love it for somebody to add 64-bit support to v86. However, Apptron is not tied to v86. We could add Bochs like c2w or even JSLinux for 64-bit, I just don't think it will be fast enough to be useful for most. Apptron is built on Wanix, which is sort of like a Plan9-inspired ... micro hypervisor? Looking forward to a future where it ties different environments/OS's together. https://www.youtube.com/watch?v=kGBeT8lwbo0 https://www.youtube.com/watch?v=kGBeT8lwbo0
- kantord 8mo agoThis is not the technical solution you want, but I think it provides the result that you want: https://github.com/devcontainers https://github.com/devcontainers tldr; devcontainers let you completely containerize your development environment. You can run them on Linux natively, or you can run them on rented computers (there are some providers, such as GitHub Codespaces) or you can also run them in a VM (which is what you will be stuck with on a Mac anyways - but reportedly performance is still great). All CLI dev tools (including things like Neovim) work out of the box, but also many/most GUI IDEs support working with devcontainers (in this case, the GUI is usually not containerized, or at least does not live in the same container. Although on Linux you can do that also with Flatpak. And for instance GitHub Codespaces runs a VsCode fully in the browser for you which is another way to sandbox it on both ends).
- stavros 8mo agoThis is interesting (and I've seen it mentioned in some editors), but how do I use it? It would be great if it had bubblewrap support, so I don't have to use Docker. Do you know if there's a cli or something that would make this easier? The GitHub org seems to be more focused on the spec.
- bakugo 8mo ago[flagged]
- iamjackg 8mo agoNobody is promoting a product. Simon is just sharing an experiment he attempted. No products being sold here.
- pelcg 8mo agoMaybe not, but in the past some here see that the blog is the product that is being promoted here. Even in this thread alone https://news.ycombinator.com/item?id=47314929 https://news.ycombinator.com/item?id=47314929 some commenters here are clearly annoyed with the way AI is being shoved in each place where they do not want it. I don't care, but I can see why many here are getting tired of it.
- dang 8mo agoPlease don't cross into personal attack on this site. We ban accounts that do that, and you've unfortunately done it repeatedly in this thread. Current comment was the worst case of this by far, but https://news.ycombinator.com/item?id=47317411 https://news.ycombinator.com/item?id=47317411, for example, is also on the wrong side of the line. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- zitterbewegung 8mo agoWhile this may be a better sandbox, actually having a separate computer dedicated to the task seems like a better solution still and you will get better performance. Besides, prompt injection or simpler exploits should be addressed first than making a virtual computer in a browser and if you are simulating a whole computer you have a huge performance hit as another trade off. On the other hand using the browser sandbox that also offers a UI / UX that the foundation models have in their apps would ease their own development time and be an easy win for them.
- johnhenry 8mo agoAre you describing bolt.new? (Unfortunately, it looks like their open source project is lagging behind https://github.com/stackblitz-labs/bolt.diy https://github.com/stackblitz-labs/bolt.diy)
- ZeWaka 8mo agoIt's relatively easy to spin up a busybox WASM v86 solution
- andai 8mo agoI run agents as a separate Linux user. So they can blow up their own home directory, but not mine. I think that's what most people are actually trying to solve with sandboxing. (I assume this works on Macs too, both being Unixes, roughly speaking :)
- repstosb 8mo ago> The thing I most want to use this (or some other WASM Linux engine) for is running a coding agent against a virtual operating system directly in my browser. Well, there it is, the dumbest thing I'll read on the internet all week. Most of the engineering in Linux revolves around efficiently managing hardware interfaces to build up higher-level primitives, upon which your browser builds even higher-level primitives, that you want to use to simulate an x86 and attached devices, so you can start the process again? Somewhere (everywhere), hardware engineers are weeping. I'll bet you can't name a single advantage such a system would have over cloud hosting or a local Docker instance. Even worse, you want this so your cloud-hosted imaginary friend can boil a medium-sized pond while taking the joyful bits of software development away from you, all for the enrichment of some of the most ethically-challenged members of the human race, and the fawning investors who keep tossing other people's capital at them? Our species has perhaps jumped the shark.
- simonw 8mo ago> Well, there it is, the dumbest thing I'll read on the internet all week. Rude. In case you're open to learning, here's why I think this is useful. The big lesson we've learned from Claude Code, Codex CLI et al over the past twelve months is that the most useful tool you can provide to an LLM is Bash. Last year there was enormous buzz around MCP - Model Context Protocol. The idea was to provide a standard for wiring tools into LLMs, then thousands of such tools could bloom. Claude Code demonstrated that a single tool - Bash - is actually much more interesting than dozens of specialized tools. Want to edit files without rewriting the whole thing every time? Tell the agent to use sed or perl -e or python -c. Look at the whole Skills idea. The way Skills work is you tell the LLM "if you need to create an Excel spreadsheet, go read this markdown file first and it will tell you how to run some extra scripts for Excel generation in the same folder". Example here: https://github.com/anthropics/skills/tree/main/skills/xlsx https://github.com/anthropics/skills/tree/main/skills/xlsx That only works if you have a filesystem and Bash style tools for navigating it and reading and executing the files. This is why I want Linux in WebAssembly. I'd like to be able to build LLM systems that can edit files, execute skills and generally do useful things without needing an entire locked down VM in cloud hosting somewhere just to run that application. Here's an alternative swipe at this problem: Vercel have been reimplementing Bash and dozens of other common Unix tools in TypeScript purely to have an environment agents know how to use: https://github.com/vercel-labs/just-bash https://github.com/vercel-labs/just-bash I'd rather run a 10MB WASM bundle with a full existing Linux build in then reimplement it all in TypeScript, personally.