Shiro

A complete dev environment in your browser.

Shell, git, npm, node, C compiler, SQLite, Python, and Claude Code. 220+ commands in ~420 KB. 2250+ tests. No server required.

shiro.computer
user@shiro:~$ npm init -y
Wrote to /home/user/package.json

user@shiro:~$ npm install left-pad
added 1 package

user@shiro:~$ echo 'const lp = require("left-pad"); console.log(lp("hello HN", 30, "."))' > app.js

user@shiro:~$ node app.js
......................hello HN

user@shiro:~$ git init && git add . && git commit -m "shipped from a browser tab"
Initialized empty Git repository in /home/user
[main (root-commit) a1b2c3d] shipped from a browser tab
 3 files changed, 17 insertions(+)

user@shiro:~$ 

Write code, install packages, compile C, query databases, and run Claude Code — all in a browser tab. Files persist in IndexedDB. WASM runtimes load on demand. Nothing leaves your machine unless you want it to.

Build and interact with apps

Write a counter, serve it, click buttons from the shell, upgrade to a grapher, commit with git.

Interactcounter → serve → page commands → upgrade → commit

Build and interact with apps

Serve an app, use page to click and read DOM elements, then commit.

Real git, no server

init, add, commit, diff — all running client-side via isomorphic-git.

Gitlocal repository operations

Real git, no server

init, add, commit, diff. Pure JavaScript, no server needed.

Snapshot as a GIF

Capture the entire filesystem into a GIF. Drag it to another instance to restore.

Seed GIFsnapshot → drag → restore
source
target

Snapshot as a GIF

Snapshot one Shiro instance, drag the GIF to restore in another.

The Chain

C compiler → Node → SQLite → jq → esbuild → git → serve. All in one browser tab.

Chaincc → node → sqlite3 → jq → build → git → serve

The Chain

Six WASM runtimes chained together. Each step feeds the next.

How it works

Filesystem

IndexedDB with a POSIX-like API. stat, readdir, readFile, writeFile, mkdir, symlink, chmod, glob. Files persist across reloads.

Shell

Full bash compatibility: pipes, redirects, arrays, arithmetic, functions, traps, extglob, process substitution, and 30+ builtins.

Packages

Real npm tarballs from the registry. npm init/install/start/run/uninstall. node runs JS/TS/JSX/TSX. Express shim with Router support. npx auto-installs.

One file

Single self-contained HTML. All JS/CSS inlined by the build. ~420 KB gzipped. Deploy anywhere — GitHub Pages, S3, open it locally.

WASM Runtimes

C compiler (xcc), SQLite (sql.js), Python (Pyodide), Lua, jq, esbuild. Lazy-loaded and cached. Zero boot cost.

Spirit & Claude Code

Built-in AI: spirit "explain this" pipes through Claude API with streaming. Plus the full @anthropic-ai/claude-code CLI with file tools.