X:0000 Y:0000
   [ TRACE ] · [ STEP ] · [ EMIT ] · [ SYNC ] · [ FORK ] · [ AWAIT ] · [ PIPE ] · [ CALL ] · [ READ ] · [ WRITE ] · [ MONITOR ] · [ OBSERVE ] · [ NODE ] · [ RUN ] · [ FAULT ] · [ RESOLVE ] · [ DISPATCH ] · [ CAPTURE ]    [ TRACE ] · [ STEP ] · [ EMIT ] · [ SYNC ] · [ FORK ] · [ AWAIT ] · [ PIPE ] · [ CALL ] · [ READ ] · [ WRITE ] · [ MONITOR ] · [ OBSERVE ] · [ NODE ] · [ RUN ] · [ FAULT ] · [ RESOLVE ] · [ DISPATCH ] · [ CAPTURE ]
Features How it works Instrument Demo Join Waitlist →

// Instrumentation Layer · v0.1.0-alpha

M.O.L.A.

Monitor & Observe Live Application Traces

A real-time debugger that lives inside your codebase.
Instrument async functions with two markers. Watch every node, every step, and every failure as it happens.

See how it works
scroll
// ── what is mola ─────────────────────────────────────────────────
01 ──
Instrument in minutes
Add two comment markers and two wrapper calls to any async function. The AST parser extracts your step structure automatically — no config files, no schemas.
02 ──
See every execution
A local dev server buffers 500 events per node. Every run, step outcome, duration, and thrown error is visible in the UI — even if the tab wasn't open.
03 ──
Debug without guessing
Select any node or step and see its source context, last return value, and fault paths. Time-travel to any past run and compare states.
// ── features ──────────────────────────────────────────────────────

Built for the
way you actually debug

Every detail of Mola is designed around how async code fails in production — not how it looks on a diagram.

UI
Live Node Graph
Pan and zoom a real-time graph of all instrumented nodes. Edges are inferred automatically from async call chains via AsyncLocalStorage context. Animated packets travel active edges.
UI
Step Pipeline
Expand any node to see its full step execution timeline — each step labeled, timed, and color-coded. Fault paths render below failing steps with exact error messages.
UI
Inspector Panel
Click any node or step to see source location, description, last return value, ASCII progress bar, and complete fault path list in a clean sidebar.
Runtime
Time-Travel Snapshots
Click any past run in the diagnostic console to replay system state at that exact moment. Step through executions, compare runs, return to live with one click.
Runtime
Edge Inference
No manual graph wiring. Parent node context propagates automatically through AsyncLocalStorage — call a traced function from inside another traced function and the edge appears.
UI
Deep Dive Terminal
Launch a full xterm.js terminal session from any node or step in one click. Saved sessions persist as Markdown. Debug in context without switching windows.
// ── how it works ───────────────────────────────────────────────────
01
Instrument
Add @mola-node and @mola-step markers to any async function alongside matching traceNode() and traceStep() wrappers. One import, two patterns.
npm install @mola5/tracer
02
Start the server
Run npx mola start alongside your application. The dev server parses your source files, registers node manifests, and opens a WebSocket for live events.
npx mola start → localhost:4242
03
Observe
Open the Mola UI. Every function invocation streams in live — nodes light up, steps progress, errors surface with full context. Click anything to inspect it.
localhost:5173 → live dashboard
// ── instrumentation ────────────────────────────────────────────────
src/orders/processor.ts TypeScript
1import { traceNode, traceStep } from '@mola5/tracer';
2
3// @mola-node: order-processor
4export const processOrder = traceNode('order-processor', async (orderId: string) => {
5 let cart, payment;
6
7 // @mola-step: 1_validate_cart
8 cart = await traceStep('1_validate_cart', async () => {
9 const c = await db.getCart(orderId);
10 if (!c.isValid) {
11 // @mola-error: cart_expired
12 throw new Error('Cart contains expired items');
13 }
14 return c;
15 });
16
17 // @mola-step: 2_charge_payment
18 payment = await traceStep('2_charge_payment', async () => {
19 return await stripe.charge(cart.total, cart.paymentMethod);
20 });
21
22 // @mola-step: 3_fulfill_order
23 await traceStep('3_fulfill_order', async () => {
24 await fulfillment.ship({ orderId, payment });
25 });
26
27});
// ── live dashboard ─────────────────────────────────────────────────
$ diagnostic_console
node graph

// early access

Be first in.

Mola is in private alpha. Join the waitlist
and we'll reach out when access opens.

No spam. Unsubscribe any time.