v0.1 · open source · Rust + V8
justrunjs
A scratchpad with inline values.
Write TypeScript or JavaScript. Every top-level expression renders its value next to the source line, the moment you stop typing. Native desktop, in the browser, or both.
Press Esc to collapse · Click the icon to expand
What it looks like
untitled.ts 6 results · 18ms
const greeting = "hello";
'hello'
greeting.toUpperCase();
'HELLO'
const m = new Map<string, { name: string }>();
m.set("u1", { name: "Ada" });
Map(1) { 'u1' => { name: 'Ada' } }
m;
Map(1) { 'u1' => { name: 'Ada' } }
import _ from "npm:lodash@4";
_.chunk([1, 2, 3, 4, 5], 2);
[ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]
const total = await Promise.resolve(40 + 2);
42
total;
42
How it works
-
1
Type. TypeScript or JavaScript. Per-tab language switching, no tsconfig.
-
2
See values inline. Every top-level expression renders next to its source line. Maps, Sets, Symbols, class instances — formatted, not JSON-stringified.
-
3
Reach for packages.
npm:lodash@4andhttps://imports just work. Top-level await is supported.
Frequently asked questions
- What is this, exactly?
- A scratchpad. You write TypeScript or JavaScript at the top, and every top-level expression renders its value on the same line. Like a REPL, but you can edit history.
- TypeScript without a tsconfig?
- Yes. Types are stripped via SWC before the code runs in V8. There is no project, no tsconfig, no install step. Per-tab TS/JS switching.
- Can I import packages?
- Use the npm: prefix — e.g. import _ from "npm:lodash@4". Packages are fetched as ESM from esm.sh and cached for the session.
- Does it work offline?
- The native desktop build runs entirely on your machine; the V8 isolate is bundled. npm: and https: imports need a network. The browser build needs a network for the page itself.
- Is it free?
- Yes. Open source on GitHub.