Today we are announcing BrowserCode, a browser-based playground for
fast-prototyping and instant sharing of full-stack apps.
It is free to use, open source, and
it runs entirely on your device, client-side. There is no backend doing the work for you, no server spinning
up somewhere, and nothing to install. You open a tab and you get access to a complete development
environment.
And BrowserCode can be embedded in your own web app as well, for free. The editor below is an example of what that looks like. Change a file, play around, and watch the preview update.
What BrowserCode is
BrowserCode started as a small experiment: could we run an AI coding CLI like Claude Code completely client-side, with no VM, no SSH session, and no cloud compute behind it?
The answer was yes, and the project kept growing from there. It is now a full IDE with a file tree, a code editor, a search pane, a real terminal, and a live preview pane. Inside a browser tab you can:
- boot a framework template
- clone a GitHub repository into your workspace
- run an AI coding agent against your code
- share the result over a public URL
Think of it as the scratchpad you reach for when you want to try something quickly. A reproduction for a bug report. A proof of concept you want to show a colleague before lunch. A library you just found on GitHub and want to poke at without cloning it to your laptop.
There is no account to create. You open the page and the environment is already booting, and nothing gets uploaded: your files live in the tab, on your own machine.
If you want to run an agent, you sign in to that agent’s own provider with your own account, and that credential stays in your browser.
What you can do in it
BrowserCode is a browser-based development environment, built on
BrowserPod, our WebAssembly sandbox, and it can already be used in
multiple ways. Treat what follows as a preview of what BrowserCode will be, because there is a lot
more coming.
Start from a framework template
Open the IDE playground and pick a starting point. BrowserCode ships templates for Vite, React,
Svelte, Vue, Next, Nuxt and Express.js. Dependencies install from npm
inside the pod, the dev server starts in the terminal, and the preview pane picks it up.
It behaves the way you would expect the same setup to behave locally. Hot reload works. The
terminal is a terminal, so you can cd around, grep through files, and commit with git.
Share what you built with a Portal
This is one of the features we are the most proud of. When a server starts inside a pod, BrowserPod will expose it to the internet through a Portal, a randomly generated public URL that routes HTTP traffic to the service running in your tab.
That means you can open your work-in-progress on your phone, send the link to a teammate for a quick look, or show a client a preview, without deploying anything. The server is still on your machine. The Portal is the tunnel to it.
Clone a repository
The IDE landing page can clone a GitHub repo straight into your workspace, a feature currently in beta. Paste a URL, wait a moment, and you have the project open with its history, ready to install and run.
It is a nice way to evaluate a library, check whether a PR actually builds, or walk through an unfamiliar codebase with a terminal next to it.
Run AI coding agents
The original idea is still there, and it is still our favorite part. BrowserCode runs unmodified AI
coding CLIs client-side. Today you can play with Claude Code, Codex CLI and Pi, with Antigravity, OpenCode and more coming soon.
You sign in with your own account or API key, which stays in your browser, and the agent works on files inside the pod. It can read your project, run commands, install packages and start servers, all within the sandbox. If it breaks something, it breaks something in a tab, not in your system.
Here is Claude Code itself, running in this page.
Signing in opens a new tab, where you will want Copy code login.
Agents and the preview pane work well together: the agent edits a file, the dev server reloads, and the result is on screen before you have finished reading the diff.
How it works
BrowserCode is the product, and BrowserPod is the core it is built on: a
WebAssembly sandbox that brings server-side runtimes to the browser.
A pod is similar to a tiny Linux machine running inside your tab. It gives you:
- Real runtimes: Compiled to WebAssembly from their unmodified source code. Currently BrowserPod supports Node.js v22, Rust, and Python (in preview), with more to come in the near future.
- A POSIX-like filesystem: Backed by OPFS or IndexedDB, to persist your project locally across sessions.
- Command line tools: bash, git, npm, pnpm, curl, ripgrep, fd and many others.
- Multiple processes with real concurrency: Each thread or process gets its own Worker.
- Restricted outbound networking: HTTPS only, to an allowlist that covers the npm registry, Yarn and GitHub. BrowserCode adds the major AI provider APIs to that list.
Everything runs inside your browser on your device. Browsers are the most trusted security boundary available today, and the BrowserPod sandbox inherits the same level of security and isolation as any other web application.
There is a great deal more to it than fits here. The BrowserPod deep dive walks through the architecture in full.
Putting BrowserCode in your own pages
BrowserCode is embeddable. If you maintain docs, a tutorial, a course, or a landing page, you can drop a working environment into it with an iframe, and configure the whole thing from the query string.
<iframe src="https://browsercode.io/embed?framework=vite&view=preview" allow="cross-origin-isolated" style="width: 100%; height: 600px; border: 0"></iframe>You can point it at a repository, a framework template, or an agent, and choose which panes show up:
/embed?repo=https://github.com/user/repo/tree/main/examples/demo/embed?framework=nextjs&view=files,editor,terminal/embed?agent=claudeOne requirement to know about: BrowserPod needs SharedArrayBuffer, which browsers only enable
in cross-origin isolated pages. So the page doing the embedding has to send these two headers:
Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corpThe iframe will also need the allow="cross-origin-isolated" attribute. The
embedding guide covers
every parameter and provides full integration instructions.
Free, open source, and yours to fork
The hosted app at browsercode.io is free to use. Open it and start
building.
The source is on GitHub under Apache 2.0, so you can
also run your own copy. You will need a BrowserPod API key, which you can get at
browserpod.io
. The free plan covers personal and non-commercial projects,
with up to 1,000 hours of compute a month, unlimited concurrent sandboxes and unlimited storage.
If your project needs more than that, there are two grant programmes, both without a subscription
fee. Open source projects can apply for up to 100,000 tokens a
month, renewed monthly. Early-stage startups can apply
for up to 10M tokens
, worth $10,000, renewed yearly.
A few caveats
BrowserCode is launching today as we believe it is already a powerful and useful tool, but there are still some rough edges that might be surprising.
- Native binaries are not supported. Packages with native dependencies may not install. There
is a guide
on working around this.
- Outbound networking is restricted. HTTPS on port 443 only, and limited to the allowlist.
Plain HTTP, SSH remotes (
git@github.com), other ports, andlocalhostfrom inside a pod are all refused. - Agents sometimes need a nudge. Each one gets an instructions file at launch (
CLAUDE.mdfor Claude Code,AGENTS.mdfor Codex CLI and Pi) explaining that it is running in a custom environment, but it may try its usual behavior first.
What is coming next
BrowserCode is a rapidly evolving project, and several significant features are in development at this very moment.
Java, through CheerpJ. CheerpJ is our WebAssembly JVM, and we are wiring
it into BrowserCode as another runtime, with
javac compiling your source and a real JVM running
it in the tab. Education is the use case we are most interested in here: a course, a tutorial or a
bug report could then ship with an environment the reader can run directly.
Version control in the editor. Today you can clone a repository in and drive git from the
terminal. We are bringing version control into the UI itself, with the features you would expect
from a modern editor such as VS Code, or at least the most useful of them: staging changes,
committing, switching branches, and pushing your work back to GitHub.
Try it and tell us what breaks
Go to browsercode.io, boot a template, and see how far you can push it.
This is a beta, which means the most valuable thing you can do with it is find the point where it
gives up and tell us about it. If you find a bug, a broken package, a framework that will not boot
or a workflow that feels wrong, open an issue
and we will take a look.
And if you build something with it, come and share it in our community on Discord. The most interesting use cases for BrowserCode are certainly going to be the ones we have not thought of yet.
