Desktop · Windows & Linux

Run a JavaScript idea
the moment you have it.

A Monaco-powered playground for Node.js — multi-tab, npm-sandboxed, and inspired by the TypeScript Playground. No project folder, no install step, no ceremony.

scratch.js
fetch-test.js
+
1const res = await fetch('https://api.github.com') 2const data = await res.json() 3console.log(data.name)
$ node sandbox/run.js

github

done in 214ms

Features

Everything a scratchpad needs, nothing a project does.

Built for the moment you want to test one thing, not scaffold an app.

01

Monaco editor

The same engine behind VS Code — full syntax highlighting, IntelliSense, and auto-formatting.

02

Multi-tab workspace

Open as many tabs as you need. Each keeps its own editor and console output, renamed with a double-click.

03

Top-level await

Write await fetch(...) directly — no wrapping everything in an async function first.

04

NPM sandbox

Install any package — axios, lodash, dayjs — from the UI. Installed once, isolated, persisted between sessions.

05

Console panel

A dark terminal panel shows stdout and stderr after every run, with errors highlighted in red.

06

Persistent sessions

Every tab and its content is saved automatically and restored the next time you launch.

How it works

What happens when you press Run.

01

Wrap

Your code is automatically wrapped in an async IIFE, so top-level await always works.

02

Write

It's written to a temporary .js file inside the NPM sandbox folder.

03

Execute

Run as a Node child process from within the sandbox, so any require(...) resolves against its own node_modules.

04

Clean up

The temporary file is deleted immediately after execution. Isolated, fast, and it never touches your global Node environment.

Tech stack

Built on tools you already trust.

Electron v28 Monaco Editor TypeScript Webpack electron-builder npm sandbox / child_process