Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>JSCR — JavaScript AI-Powered Code RunnerNew to Visual Studio Code? Get it now.
JSCR — JavaScript AI-Powered Code Runner

JSCR — JavaScript AI-Powered Code Runner

Preview

Wirekind Communications

|
2 installs
| (1) | Free
Live inline code execution inside VS Code — JavaScript & TypeScript, plus Python (3.7+), Java (11+) and Go (1.11+). File Mode + persistent Scratch Mode. Free to use under the JSCR Freeware EULA (no modification, redistribution, or resale).
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JSCR

JSCR — JavaScript AI-Powered Code Runner

Live inline JavaScript & TypeScript execution inside VS Code.
Type code, see results — no button presses, no terminal switching, no context loss.

Build Marketplace Homepage


Why JSCR

  • Live inline evaluation — every top-level expression is reported next to its line, in real time.
  • File Mode — runs the active .js / .ts file against your workspace's node_modules. No config.
  • Scratch Mode — persistent scratchpad snippets that survive restarts, kept in ~/.jscr/snippets/.
  • Dormant when off — zero background processes when the panel is closed.
  • AI-assisted fixes — send a runtime error + code to OpenRouter and preview a two-column diff before accepting.
  • Theme-native output — panel colors are pulled from your active VS Code color theme, not hardcoded.
  • Polyglot — first-class Python, Java and Go alongside JS/TS, each running live.

Polyglot: Python, Java & Go

JSCR also runs Python, Java and Go snippets live, streaming their output into the same panel. Each language's toolchain is auto-detected on startup (results are cached, so subsequent launches are instant); a language only appears in the New Snippet menu when a supported toolchain is found.

Language Minimum version Run mode Live debounce Notes
JavaScript / TypeScript Node 17+ live 300 ms In-process V8 vm, line-anchored value inspector
Python 3.7 live 1 s Runs the file in place: python <file>
Go 1.11 live 3 s Modules build; the go.mod target tracks your detected Go version, so modern features (generics, etc.) compile
Java 11 live 3 s Single-file source launcher (JEP 330) — no javac step, no .class files
  • Below the minimum? If a detected toolchain is older than the minimum, that language is treated as unavailable — running such a snippet shows a clear "version too old" message (just like an unsupported Node version) while every other language keeps working.
  • Compiled languages run live too — Go/Java re-run on a 3 s idle debounce (never mid-keystroke). Turn this off per language with jscr.go.liveMode / jscr.java.liveMode to run them only on demand.
  • Timeouts — native runs get a longer default (jscr.process.timeoutMs, 45 s) than the in-vm JS engine, and the whole process tree is force-killed (SIGTERM → SIGKILL) on timeout so worker threads never linger.

Program Input (stdin)

For interactive-looking programs — Java Scanner, Python input(), Go fmt.Scan — the panel has a Program Input box (toggle it from the header's terminal-prompt icon). Type the input your program reads ahead of time, one value per line, with one-click Paste and Clear:

Alice
30

On each run JSCR feeds that into the program's stdin and then closes it. So a read past what you supplied instantly hits end-of-input (Java NoSuchElementException, Python EOFError, Go io.EOF) with a red squiggle on that line — the re-run never hangs waiting for a human. Fill the box → every line runs each cycle. Leave it short → it fails fast at the first unsatisfied read. Input is remembered per snippet.

Requirements

  • VS Code 1.85+
  • Node.js v17+ (recommended v22 LTS for full ES2023 support)
  • Optional, only for their languages: Python 3.7+, Java (JDK) 11+, Go 1.11+ on your PATH (or point JSCR at them with jscr.python.path / jscr.java.path / jscr.go.path).

Install

Marketplace (recommended): Extensions view → search JSCR → Install.

From a local .vsix:

code --install-extension jscr-<version>.vsix

Build a local .vsix yourself with npm run package — see docs/LOCAL_BUILD_AND_USE.md.

Quick start

  1. Press Ctrl+Shift+J (macOS: Cmd+Shift+J) to open the JSCR panel.
  2. Open any .js or .ts file — or press Ctrl+Shift+N to create a Scratch snippet.
  3. Type. Each 300 ms of idle triggers a run.
  4. Per-line results appear inline in the panel:
L 3   const total = 42          →  42
L 4   users.map(u => u.name)    →  ['ada', 'grace', 'linus']
L 5   console.log('hi', 3)      →  hi  3

Commands

Command Default keybind
JSCR: Toggle Panel Ctrl+Shift+J / Cmd+Shift+J
JSCR: New Scratch Snippet (JavaScript) Ctrl+Shift+N / Cmd+Shift+N
JSCR: New Scratch Snippet (TypeScript) —
JSCR: New Scratch Snippet (Python / Java / Go) — (shown when the toolchain is detected)
JSCR: Run Snippet Ctrl+Shift+Enter / Cmd+Shift+Enter
JSCR: Refresh Language Environments —
JSCR: Run Current File —
JSCR: Show Live Output —
JSCR: Install Package —
JSCR: Switch Package Source —
JSCR: Fix with AI Ctrl+Shift+A / Cmd+Shift+A
JSCR: Switch AI Model (OpenRouter) Ctrl+Shift+Alt+A / Cmd+Shift+Alt+A
JSCR: Save Snippet to Project —
JSCR: Move Snippet to Global —
JSCR: Delete Snippet —
JSCR: Clear All Snippets —
JSCR: Toggle Snippet Language (JS ↔ TS) —

All commands are available from the Command Palette — press Ctrl+Shift+P (macOS: Cmd+Shift+P) and type JSCR. Fix with AI is also on the editor right-click menu for .js/.ts files.

Configuration

Search jscr in Settings, or edit .vscode/settings.json:

Setting Default What it controls
jscr.debounceMs 300 Wait this long after a keystroke before running (JS/TS).
jscr.executionTimeoutMs 20000 Hard timeout for JS/TS — user code is killed after this many ms.
jscr.process.timeoutMs 45000 Hard timeout for Python/Java/Go. The process tree is force-killed on timeout.
jscr.python.path "" Override the Python interpreter path. Empty = auto-detect (py / python3 / python).
jscr.java.path "" Override the Java (JDK 11+) launcher path. Empty = auto-detect.
jscr.go.path "" Override the Go toolchain path. Empty = auto-detect.
jscr.python.debounceMs 1000 Live re-run debounce for Python.
jscr.compiled.liveDebounceMs 3000 Idle debounce before a live re-run of Go/Java.
jscr.go.liveMode true Re-run Go live as you type. Off = run on demand only.
jscr.java.liveMode true Re-run Java live as you type. Off = run on demand only.
jscr.openRouterApiKey "" Required for Fix with AI. Get one at openrouter.ai.
jscr.openRouterModel cohere/north-mini-code:free Any OpenRouter model ID. Change it with JSCR: Switch AI Model.
jscr.aiRequestTimeoutMs 30000 AI request timeout.
jscr.output.tokenColors {} Optional per-token color overrides (string, number, keyword, property). Empty = inherit from theme.

Fix with AI

Uses OpenRouter — bring your own API key.

  1. Get a key at openrouter.ai and paste it into jscr.openRouterApiKey.
  2. Open a .js / .ts file with a runtime error.
  3. Run it once so JSCR captures the error (a red squiggle marks the failing line).
  4. Command palette → JSCR: Fix with AI, or right-click the file → JSCR: Fix with AI.
  5. Review the side-by-side diff → Accept Fix or Reject.

Choosing a model

Run JSCR: Switch AI Model (OpenRouter) from the Command Palette (Ctrl+Shift+P) to:

  • see the model you're currently using,
  • change it by browsing OpenRouter's live catalog (free models are tagged) or entering a custom ID, and
  • validate the choice — JSCR sends a tiny request with your key and confirms it works before saving.

The default cohere/north-mini-code:free works out of the box; any free-tier model is a good starting point.

Share a run

The panel header has a Save run as… button (next to Copy). It exports the current snippet and its output as either:

  • Markdown — a code fence + output fence, ready to paste into a GitHub issue or PR comment.
  • Standalone HTML — a self-contained, theme-coloured page you can drop into a doc or chat.

One click turns "let me screenshot this" into "here's the code, here's what it prints."

Scratch snippets

Snippets are file-backed and auto-saved with a 400 ms debounce — you'll never see a "save?" prompt. They live under:

  • ~/.jscr/snippets/global/ — shared across all workspaces.
  • ~/.jscr/snippets/projects/<workspace>/ — scoped to a workspace.

An JSCR Snippets view appears in the Explorer once you create one:

  • 📁 Save to project (global rows only) — moves the snippet into the current workspace.
  • 🗑️ Delete — with confirm.
  • 🔀 Toggle language — renames .js ↔ .ts in place, ID preserved.
  • Clear all — wipes global snippets (with confirm).

How it compares

JSCR RunJS Quokka
Runs inside VS Code ✅ ❌ (separate app) ✅
Live inline evaluation ✅ ✅ ✅ (paid tier)
Persistent scratch snippets ✅ ✅ ❌
Uses workspace node_modules ✅ partial ✅
AI-assisted fixes (bring your own key) ✅ ❌ ❌
Free to use (incl. commercial) ✅ ❌ partial

Troubleshooting

See docs/LOCAL_BUILD_AND_USE.md § 11.

Contributing

Issues and PRs at github.com/wirekind/jscr.

Support

Questions, enquiries, or need a hand? Reach Wirekind Communications LLP:

  • ✉️ Email — support@wirekind.com
  • 🌐 Contact form — wirekind.com/contact
  • 🐛 Bugs & feature requests — github.com/wirekind/jscr/issues

License

JSCR Freeware End-User License Agreement (EULA) — © 2026 Wirekind Communications LLP.

JSCR is free to download and use by both individuals and companies, including in commercial settings, at no cost. You may not modify, reverse-engineer, copy/redistribute, sublicense, rent, or sell the Software. All rights are reserved by Wirekind Communications LLP — see LICENSE for the full terms, or contact support@wirekind.com for permissions beyond this license.

Publisher

Wirekind Communications LLP — jscr.app

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft