JSLab is available today for Apple Silicon Macs running macOS 14 or later.

It's a native JavaScript and TypeScript scratchpad. Open a tab, type, and every result, log and error lands in the output panel, tagged with the line that produced it. No project, no terminal, no build step.

A first tab

const orders = [ { region: "EU", total: 120 }, { region: "US", total: 80 }, { region: "APAC", total: 210 }, ]; const revenue = orders.reduce((s, o) => s + o.total, 0); //? `Revenue: ${revenue}` 

410 appears beside line 7 and Revenue: 410 beside line 8. Change a total and both update a moment after you stop typing. No console.log anywhere.

What's in it

  • Auto Run. Your code reruns a moment after you stop typing. ⌘R runs on demand.
  • Every result, traced to its line. Click a row in the output and the editor jumps there.
  • Magic comments. value //? logs a value; //? $.length logs part of it.
  • Three runtimes, one per tab. Bun (the default), Browser, or Browser & Node APIs. Browser tabs render React, Vue and Angular in a Web View beside the console.
  • npm packages, with types and autocomplete.
  • Ask AI. It reads the code in your tab and sends changes back as an inline diff you accept or reject. Ollama runs locally; OpenAI, Anthropic and Google Gemini use your own key, stored in the macOS Keychain.
  • Your code stays on your Mac. No telemetry, no crash-reporting services.

Each feature has its own short post in the Scratchpad JS series, and the docs are at js-lab.app/docs.

Try it

14 days free, no account needed: js-lab.app.

If something breaks or reads wrong, say so in the comments.