Run Node.js in your browser

Tab Desktop runs a genuine Node.js-compatible runtime inside the browser tab — not a sandboxed subset and not a remote VM. npm install fetches real packages, vite dev starts a real dev server, and the HTTP server it binds is reachable from the same tab. Everything runs inside your browser tab on WebAssembly. There is no server executing your code, no container to wait for, and nothing to install.

Open Tab Desktop →Free · nothing to install

How it works

A Node-compatible runtime over WebAssembly, with an OPFS-backed filesystem and a real module resolver.

npm create vite@latest my-app -- --template react && cd my-app && npm install && npm run dev

What you can do

  • npm, pnpm and yarn installs — including workspaces, lockfiles and a pnpm store with symlinks
  • Dev servers that actually serve: Vite, Next.js, Nuxt, Astro, Express
  • ESM and CommonJS side by side, with the same resolution rules Node uses
  • Child processes, worker threads, streams, and a real event loop
  • A POSIX-ish shell: git, node, npm, curl, sqlite3, and the usual file commands
  • Native addons where a WASM build exists (esbuild, lightningcss, SWC, Rolldown)

What it does not do

  • Native N-API addons with no WebAssembly build cannot load — there is no compiler for arbitrary C++ at runtime
  • Outbound network calls go through a CORS proxy, so a host that blocks proxying is unreachable
  • Very large installs are bounded by browser storage, not by disk

Start with a preset

One click scaffolds the project in its own isolated desktop and starts the dev server.

Questions

Is this really Node.js, or a simulation?

It is a Node-compatible runtime, not a mock. Package resolution, the module system, streams, child processes and the filesystem all follow Node semantics, which is why unmodified projects like Vite, Next.js and Strapi run without patches.

Where do npm packages come from?

From the real npm registry, fetched over the network and unpacked into a browser-local filesystem. Your lockfile resolves the same versions it would anywhere else.

Does my code get uploaded anywhere?

No. Execution and storage are entirely client-side. Files live in your browser's own storage (OPFS) and never leave the machine unless you push them somewhere yourself.

Does it work offline?

Once the runtime has loaded, local execution works offline. Installing new packages or cloning a repository needs the network, as it would anywhere else.

Also runs in the tab