Skip to content

Live Comments

Drop // ? after any expression to display its value β€” free, with no setup.

Live comments are the fastest way to inspect a value: append // ? after any expression and its runtime value displays inline at the end of that line. This works on the free tier β€” no license, no config.

The // ? Syntax

Add // ? to the end of any line to see that line’s value:

const items = [1, 2, 3].map(x => x * 2); // ? items  β†’ [2, 4, 6]
const average = 5.5; // ? average  β†’ 5.5

The value appears inline at the end of the same line, right where you’re reading.

The /*?*/ Form

The block form works the same way and reads naturally at the end of a statement:

const total = items.reduce((sum, n) => sum + n, 0); /*?*/  β†’ 12

Where It Works

Live comments work inside deeply nested scopes β€” loops, conditionals, and callbacks β€” where they’d normally be painful to trace:

let count = 0;
count += 1; // ? count  β†’ 1
count += 1; // ? count  β†’ 2

for (const item of items) {
  item; // ? item  β†’ 2, 4, 6 (one per iteration)
  if (item > 3) {
    item; // ? item  β†’ 4, 6
  }
}

Why Use Live Comments vs Full Inline Values

Live comments are targeted β€” you pick exactly which lines to inspect, and they work on the free tier. Full inline values (every variable, return, and loop iteration) are a PRO feature that shows everything automatically.

  • Inline Values β€” full automatic value capture (PRO).
  • Auto-Log β€” automatically capture all meaningful expressions (PRO).