A browser-based TypeScript/JavaScript REPL powered by WebContainers.
- Monaco editor with TypeScript support
- In-browser Node.js execution via WebContainers
- NPM package installation with version picker
- xterm.js console with ANSI colors and clickable links
- Dark/light theme with system preference detection
- Shareable URLs (code stored in URL hash)
- Resizable panels
- Node.js 24+
- pnpm
pnpm install --frozen-lockfilepnpm dev| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm preview |
Preview with Wrangler locally |
pnpm run deploy |
Build and deploy to Cloudflare |
pnpm lint |
Check formatting and lint rules |
pnpm fmt |
Format and auto-fix lint issues |
pnpm check |
Run type checking |
pnpm test:unit |
Run unit tests (Vitest) |
pnpm test:smoke |
Run Playwright smoke test |
Install Playwright Chromium once:
pnpm exec playwright install chromiumRun smoke tests:
pnpm test:smoke| Shortcut | Action |
|---|---|
Cmd/Ctrl + Enter |
Run code |
Cmd/Ctrl + . |
Stop execution |
Cmd/Ctrl + K |
Clear console |
Cmd/Ctrl + Shift + U |
Copy share URL |
Deployed to Cloudflare Workers. Requires:
- Cloudflare account
wranglerCLI authenticated (wrangler login)
pnpm run deploy- CSP includes
style-src 'unsafe-inline'because Monaco and xterm rely on runtime-injected styles.
- SvelteKit - Framework
- Svelte 5 - UI with runes syntax
- Monaco Editor - Code editing (CDN)
- xterm.js - Terminal emulation
- WebContainers - Browser-based Node.js runtime
- Cloudflare Workers - Edge deployment