burrow
a whole dev machine in a browser tab - bun.wasm, shell, git, and local AI. phones home to nobody.
What is it?
What it is
Burrow is an open-source, Bun-native development environment that runs entirely in a browser tab, providing a real terminal, editor, Bun runtime, live server preview, package manager, git, and a local AI coding agent without any backend or remote sandbox.
Why it exists
To give developers a full, local‑only dev machine in the browser by virtualizing the OS around the host JavaScript engine—using Bun’s actual WebAssembly transpiler, an in‑memory virtual filesystem, Web Workers as processes, and a service worker for network bridging—so no code leaves the user’s machine.
Who should use it
Frontend developers wanting to experiment with Bun in the browserDevelopers looking for an open-source alternative to WebContainersEngineers interested in local, browser-based AI coding agentsEducators building interactive, zero-setup coding environments
Who should avoid it
Users requiring full TCP/UDP support (e.g., connecting to local Postgres/Redis)Developers needing native Node.js C++ addonsUsers requiring full Git functionality (no push/pull support)Applications requiring high-performance, non-sandboxed system access
How it works
A quick walkthrough in plain English
How burrow works
Step 1 of 3
You interact with it
Open burrow, send a request, or connect it to your stack.
Features
Advantages
- Open source (MIT)
- Active TypeScript ecosystem
- Self-hosted deployment options
Disadvantages
- Requires operational ownership for self-hosted setups
- Community support varies by project maturity
Installation
native
bun install bun run dev # dev server with HMR # open http://localhost:4808
FAQ
How do I run Burrow locally for development?
Clone the repository, install dependencies with `bun install`, then start the dev server using `bun run dev`. Open http://localhost:4808 in your browser to access the IDE.
How does Burrow persist my workspace across page reloads?
The virtual filesystem snapshots its full state to IndexedDB on each debounced change. On boot, Burrow restores the snapshot before seeding the VFS, and falls back to a clean reseed if the snapshot is corrupt.
What is the role of `bun.wasm` in Burrow?
`bun.wasm` is Bun's actual Rust transpiler compiled to WebAssembly, driven through a hand‑written WASI shim. It transpiles TypeScript/JavaScript files with genuine Bun semantics, not a reimplementation.
How does the server preview work when I call `Bun.serve()` inside a worker?
The bootstrap shim captures `Bun.serve()` calls, reports the port to the host, and a service worker (`public/sw.js`) forwards same‑origin `/preview/<port>/*` requests over a MessageChannel to the matching run session's fetch handler, turning the response back into a real Response that can be viewed in an iframe or new tab.
Can I use the AI coding agent without sending data to external servers?
Yes. The agent runs a small local model (Qwen3‑0.6B or Gemma) entirely in‑browser via transformers.js and WebGPU. Model weights are downloaded once, and all inference happens on‑device; the agent only interacts with the virtual filesystem and shell on the main thread.
What are some current limitations of Burrow compared to a full Node/Bun environment?
Burrow lacks raw TCP access (so Postgres/Redis need a relay), does not support native addons, only `Bun.serve` fetch handlers (no routes/websockets yet), lacks `git push/pull`, and does not run npm lifecycle scripts. See COMPAT.md for the full support matrix.
Featured in Videos
YouTube tutorials and walkthroughs for burrow
Alternatives
Similar projects ranked by category, topics, and text overlap.