Quikko
Live JavaScript and TypeScript feedback directly inside Visual Studio Code.
The Marketplace detail is presented in English by default. A Spanish translation is included in README.es.md.
Quikko runs your current code in an isolated Node.js or Bun process and shows values, logs, errors, coverage, and execution time next to your code. It works with unsaved changes, keeps a local execution history, and never edits your source file.
⚡ What it looks like
const price = 50000; → 50000
const quantity = 3; → 3
const total = price * quantity; → 150000
console.log('Total:', total); ● "Total:" 150000
total; → 150000
Results are native VS Code decorations. Quikko does not insert comments or output into your file.
🚀 Automatic startup
- Install Quikko.
- Open a trusted folder in VS Code.
- Open a
.js, .ts, .jsx, or .tsx file.
- Quikko starts automatically.
No special project configuration, save action, or extra command is required. The only security requirement is that VS Code trusts the workspace.
✨ Features
| Area |
What Quikko does |
| Inline values |
Shows variables, calculations, assignments, and expression results. |
| JavaScript |
Supports modern syntax, async/await, optional chaining, and modules. |
| TypeScript |
Transpiles types before executing the result. |
| JSX/TSX |
Parses and transpiles JSX/TSX when project dependencies are available. |
| Console |
Captures log, info, warn, error, and debug with multiple arguments. |
| Errors |
Shows syntax and runtime errors at the original source line. |
| Objects |
Serializes objects, arrays, Map, Set, Date, RegExp, Error, Promise, BigInt, and circular values. |
| Value Explorer |
Expands structured values in the native Quikko Values Explorer panel. |
| Value Explorer tools |
Searches properties and copies values from the current result tree. |
| Value Peek |
Shows the latest value, console output, or error when hovering over a result line. |
| Inspect Selection |
Evaluates a selected expression without modifying the source file. |
| Watches |
Re-evaluates saved expressions after every execution. |
| Project imports |
Bundles local JavaScript, TypeScript, JSX/TSX files and tsconfig.json aliases. |
| Import Watch |
Automatically reruns when local imported dependencies change. |
| Unsaved code |
Executes TextDocument.getText(), not only the content on disk. |
| Coverage |
Marks executed and unexecuted lines in the gutter. |
| Run on Save |
Runs only when the document is saved. |
| Run on Demand |
Runs only when explicitly requested. |
| Quikko History |
Keeps up to 20 recent executions with duration, coverage, values, logs, and errors. |
| Time Machine Lite |
Opens a previous execution snapshot without running the file again. |
| Compare Executions |
Compares two snapshots and highlights values that changed. |
| Output and Details |
Provides metrics, copy actions, logs, errors, and navigation back to source lines. |
| Performance Snapshot |
Summarizes average, fastest, slowest, errors, and observed coverage. |
| Package installation |
Installs an npm package after validating the name and asking for confirmation. |
| Node.js and Bun |
Selects Node.js or Bun as the isolated runtime. |
| Scratch files |
Creates ready-to-run JavaScript and TypeScript scratch files. |
| Privacy |
No telemetry, advertising, external AI, analytics, or hidden code uploads. |
🧭 How it works
Editor change
↓ debounce and cancellation
AST parsing and conservative instrumentation
↓
Project import bundle + TypeScript/JSX transpilation
↓
Isolated Node.js or Bun process
↓
Values + logs + errors + coverage
↓
Decorations, diagnostics, Value Peek, Explorer, history, and details
🧪 Examples
Calculations and values
const products = [
{ name: 'Keyboard', price: 100 },
{ name: 'Mouse', price: 50 },
{ name: 'Monitor', price: 300 }
];
const total = products.reduce(
(sum, product) => sum + product.price,
0
);
total;
Quikko displays products, total, and 450. The object can be expanded in Quikko Values.
Console output
const user = { name: 'Luis', age: 35 };
const visits = 4;
console.log('User:', user, 'Visits:', visits);
Errors at the correct line
const account = { balance: 1500 };
account.balance;
account.owner.name;
The error is associated with account.owner.name, not with the previous line.
TypeScript
interface User {
name: string;
age: number;
}
const user: User = { name: 'Luis', age: 35 };
user;
Local TypeScript imports
math.ts:
export const sum = (a: number, b: number): number => a + b;
main.ts:
import { sum } from './math.ts';
sum(20, 30);
Quikko bundles the local import before execution and watches it in automatic mode. Local JSX/TSX files and supported tsconfig.json aliases can use the same workflow.
Inspect Selection and Watches
Select an expression and run Quikko: Inspect Selection:
const account = { balance: 1500 };
const total = account.balance * 2;
Select account.balance * 2 and Quikko prints the result in the Quikko Output channel without editing the file. To observe it after every run, use Quikko: Add Watch Expression and enter:
account.balance * 2
Coverage
if (false) {
console.log('never runs');
}
const result = 2 + 2;
result;
Executed lines are marked in the gutter to help you find code that was not reached.
Time Machine Lite and comparison
Every successful or failed run appears in Quikko History:
Run · main.js 10:42:08 · 4.8 ms
Duration: 4.8 ms
Observed coverage: 80%
Values: 3 · Logs: 1 · Errors: 0
Use Quikko: Time Machine Lite to open an earlier snapshot. Use Quikko: Compare Executions to compare two runs:
Run A: total → 150000
Run B: total → 175000
Result: total changed
This is a result snapshot viewer. It does not replay every instruction like a traditional debugger.
Output and Details
Quikko: Open Output and Details opens the latest result with metrics, values, logs, errors, copy buttons, and navigation to the original source line.
Node.js and Bun
Node.js is the default runtime. To use Bun, run Quikko: Select Runtime or configure:
{
"livejs.runtime": "bun",
"livejs.bunPath": ""
}
Bun must be installed and available on PATH. Keep Node.js selected when a project depends on Node-specific APIs.
Install a package
Run Quikko: Install npm Package, enter for example zod@latest, and confirm. Quikko uses npm without shell, validates registry package names, and shows the output in a separate channel.
🎛️ Execution modes
| Mode |
Behavior |
auto |
Runs on open and after changes using debounce. |
onSave |
Runs when the document is saved. |
manual |
Runs only with Quikko: Run Once. |
Quikko starts automatically in auto mode inside trusted workspaces. You can stop it or change the mode from the Command Palette.
⌘ Commands
Quikko: Start on Current File
Quikko: Stop
Quikko: Restart
Quikko: Run Once
Quikko: New JavaScript Scratch File
Quikko: New TypeScript Scratch File
Quikko: Clear Results
Quikko: Clear Execution History
Quikko: Performance Snapshot
Quikko: Time Machine Lite
Quikko: Compare Executions
Quikko: Open Output and Details
Quikko: Search Values
Quikko: Inspect Selection
Quikko: Add Watch Expression
Quikko: Clear Watch Expressions
Quikko: Install npm Package
Quikko: Select Runtime
Quikko: Toggle Auto Run
Quikko: Show Output
Quikko: Open Settings
Quikko: About
⚙️ Configuration
{
"livejs.executionMode": "auto",
"livejs.bundleProjectImports": true,
"livejs.runtime": "node",
"livejs.bunPath": "",
"livejs.debounceMs": 250,
"livejs.executionTimeoutMs": 5000,
"livejs.maxValueLength": 160,
"livejs.maxObjectDepth": 3,
"livejs.maxFileSizeKb": 512,
"livejs.showValues": true,
"livejs.showConsole": true,
"livejs.showErrors": true,
"livejs.showCoverage": true,
"livejs.showExecutionTime": true,
"livejs.nodePath": "",
"livejs.logLevel": "info"
}
The livejs prefix is kept for compatibility with settings created by earlier versions; the public extension and UI are called Quikko.
🔒 Security and trust
Quikko executes workspace code in a separate Node.js or Bun process. It does not use shell: true, applies a timeout, cancels obsolete processes, and does not start automatically in untrusted workspaces. Package installation requires confirmation and accepts only registry package names.
Requirements
- VS Code Desktop 1.85 or later.
- Node.js 18 or later, or Bun installed when using the Bun runtime.
- A trusted workspace for automatic execution.
Current limitations
- Value Explorer is bounded by depth and size to avoid freezing the editor.
- History is kept in memory during the VS Code session and stores up to 20 executions.
- Time Machine Lite reviews complete snapshots; it does not replay instructions one by one or edit code during playback.
- Watches rerun expressions in an isolated process and expressions may have side effects.
- Coverage is line-based and is not a complete test coverage solution.
- JSX/TSX requires React or other project dependencies to be installed when the code uses them.
- Performance Snapshot measures complete runs; it is not a CPU profiler or a Node.js hotspot analyzer.
- Bun is an alternative runtime and may differ from Node.js for Node-specific APIs.
- Quikko does not yet include Code Story Viewer, instruction-level timeline, persistent logpoints, Live Comments, or advanced interactive graphs.
Privacy
Quikko has no telemetry, analytics, advertising, code upload, external AI API, or hidden network calls. Results stay local.
License
MIT. See LICENSE, SECURITY.md, PRIVACY.md, and PUBLISHING.md for more information.