burrow logo

burrow

a whole dev machine in a browser tab - bun.wasm, shell, git, and local AI. phones home to nobody.

Developer ToolsTypeScriptMIT 119 7Health 73
Website GitHub

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

Open source
Documented setup

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.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for burrow

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
burrow | MushyBook