Skip to content
ParrotJS

Your Code, Live. Right in the Editor.

ParrotJS shows runtime values next to every expression as you type. Time travel through execution. Run inline tests. No more console.log, no terminal switching, no context breaks.

How It Works

See the same code, with and without ParrotJS.

Without ParrotJS
const value = compute(a, b);
console.log(value);
// switch to terminal, read, switch back
const result = transform(value);
console.log(result);
// switch again, forgot what you were doing
console.log("done");
→ 4 log lines, 3 context switches
With ParrotJS
const value = compute(a, b);
→ 42
const result = transform(value);
→ { ok: true }
→ values appear inline, zero context switches

Everything Happens in the Editor

Stop the console.log → terminal → edit → repeat loop. See values, run tests, and debug — all inline.

📌

Inline Runtime Values

Every variable, function return, and loop iteration shows its value inline as you type. No console.log needed. Values update continuously as your code changes.

⏱️

Time Travel Debugging

Record execution step-by-step, then scrub through it like a video. Navigate forward, backward, step-into, step-out, step-over — with a visual timeline panel color-coded by function.

Live Feedback

💬

Live Comments

Drop // ? after any expression to display its value. Works in nested loops and callbacks.

🖥️

Console in Your Editor

console.log output appears inline at the call site. Sidebar panel streams all entries.

📊

Code Coverage

Green/gray/red gutter dots show exactly which lines executed and which didn't.

Debug & Inspect

📌

Pin & Compare

Pin a snapshot and compare side-by-side with live results. Highlights what changed.

🔍

Value Explorer

Interactive tree view for objects, Maps, Sets, Promises, and circular references.

Inline Test Runner

expect() assertions inline. Green ✓ for pass, ✗ for fail. No test config needed.

Project Setup

📘

Zero-Config TypeScript

JS, TS, JSX, TSX work out of the box. Picks up tsconfig.json automatically.

Free During Beta

Beta runs through July 10th, 2026. After that, a license key will be required.

Free Beta
$0

Free until 10th July 2026. No license key or account needed. Everything unlocked.

  • Inline runtime values
  • Live comments (// ?)
  • Time travel debugging
  • Inline expect() assertions
  • Code coverage indicators
  • Value Explorer
  • TypeScript & ESM support
  • Three run modes
  • Everything unlocked
Install Now

Frequently Asked Questions

Everything you need to know about ParrotJS.

What exactly is ParrotJS?
ParrotJS is a VS Code extension that shows runtime values inline in your editor as you type. Instead of console.log → switch to terminal → read → switch back → remove logs, you see values right next to every expression — continuously updated, no switching needed. It also includes time travel debugging (scrub through execution like a video), inline test assertions, code coverage visualization, and a value explorer for deep object inspection.
How is this different from a debugger?
Debuggers require breakpoints, manual stepping, and switching between editor and debug panels. ParrotJS shows values inline, automatically, as you type. Time Travel lets you record execution and scrub backward — something traditional step-through debuggers can't do. And you never leave the editor window.
Does it work with frameworks like React, Next.js, Vue?
ParrotJS operates at the JavaScript/TypeScript runtime level, so it works with any project that runs in Node.js. JSX and TSX are transpiled automatically. It also ships with pre-configured profiles for React, Node, and vanilla JS projects with sensible defaults for each.
Is my code sent anywhere? Does it need a network connection?
No. ParrotJS runs entirely locally. Each file executes in a forked Node.js child process with process isolation — user code can't crash the IDE. No telemetry, no cloud processing
How does Time Travel work?
When you enable recording, ParrotJS instruments your code to capture every expression's value at every execution step. You can then scrub through the timeline (like a video), navigate statement-by-statement forward or backward, step into/out/over functions, and pin snapshots to compare side-by-side with live results. If you edit the code, the trace is marked as stale.
What are Live Comments?
Type // ? after any expression and its runtime value displays inline. Works in deeply nested loops, conditionals, and callbacks. No boilerplate — just two characters. You can also toggle Auto Log Mode to automatically show values for all meaningful expressions without adding any markers.
How do inline tests work?
Write expect() assertions anywhere in your code — expect(x).toBe(5), .toEqual(), .toContain(), .toThrow(), and more. Passing assertions show a green ✓ at the line. Failures show ✗ with the actual vs expected mismatch. No test framework configuration needed. The status bar shows pass/fail counts (e.g. 2✓ 1✗).
Does it handle large objects without freezing?
Yes. The Value Explorer uses lazy loading — object children load on click via IPC to the runtime, so expanding a 10,000-entry object won't hang. It handles Maps, Sets, Dates, Promises, TypedArrays, and circular references correctly.
What about TypeScript source maps?
ParrotJS uses a 4-stage source map chain (original → transpiled → bundled → instrumented) so every inline value, error, and coverage marker maps back to the correct original TypeScript source line — not the compiled output.

Stop Switching. Start Seeing Your Code Run.

Install ParrotJS and see runtime values inline in under two minutes.

View Quickstart

Ready to Install?

Get ParrotJS from the VS Code Marketplace.

Install from Marketplace