Skip to content

Reproduce the bug.
Your agent fixes it.

Browse your app, hit a bug, drop a marker. Krometrail captures the full runtime context — browser state, network, console, framework state — so your coding agent can investigate and fix it without guessing.

1

Reproduce

Use your app in Chrome like normal. Click around, fill forms, trigger the bug.

2

Mark

Hit the marker button when something goes wrong. Krometrail captures everything.

3

Hand off

Your agent gets the full session — network, errors, DOM, framework state — and debugs the code.

What Your Agent Sees

While you browse, Krometrail records everything via Chrome DevTools Protocol. When you drop a marker, your agent gets the full picture — no copy-pasting errors into chat.

Network requests

Every XHR/fetch with status, timing, headers, and response bodies — failed requests highlighted.

Console & errors

All console output and unhandled errors, timestamped and correlated with network events.

Framework state

React and Vue component trees, props, and state captured at each marker.

DOM & storage

DOM mutations, user interactions, localStorage/sessionStorage/cookie changes — all diffed.

Screenshots

Automatic screenshots at markers and on errors. Visual proof of what you saw.

Timeline

Everything timestamped and ordered. Your agent can search, inspect, and diff any moment.

Agent's view of your session
⚑ Marker: "checkout broke" at 00:51

Network
  POST /api/orders → 500 Internal Server Error (2.1s)
  Response: {"error": "discount_code_invalid"}

Console
  Error: Unhandled promise rejection: discount_code_invalid

Framework
  React: OrderForm state { code: "SAVE15", applying: true }
  → discountApplied never set (component stuck in loading state)

Screenshot
  [Captured at marker — spinner visible, no error shown to user]

Real Debugging, Not Guessing

Your agent sets breakpoints, steps through code, and inspects variables — just like you would. No more reading stack traces and hoping for the best.

── STOPPED at app/services/order.py:147 ──

Call Stack (3 frames)
  → order.py:147  apply_discount
    cart.py:89    checkout
    views.py:34   post

Source
  145│   subtotal = sum(item.price for item in items)
  146│   discount = calculate_discount(code)
→ 147│   final = subtotal * discount  # Bug: discount is -0.15
  148│   return Order(total=final)

Locals
  items     = [Item("Widget", 29.99), Item("Gadget", 49.99)]
  subtotal  = 79.98
  discount  = -0.15  ← expected 0.85
  code      = "SAVE15"

Language Support

10 languages via the Debug Adapter Protocol — one interface, any runtime.

PythonStable
debugpy
Node.js / TypeScriptStable
js-debug
GoStable
Delve
RustStable
GDB / LLDB
JavaStable
JDWP
C / C++Stable
GDB / lldb-dap
RubyStable
rdbg
C#Stable
netcoredbg
SwiftStable
lldb
KotlinStable
JDWP

Quick Start

Set up in 2 minutes. Works with any MCP-compatible agent.

json
{
  "mcpServers": {
    "krometrail": {
      "command": "krometrail",
      "args": ["--mcp"]
    }
  }
}

How Krometrail Compares

How Krometrail stacks up against other debugging tools for AI agents.

FeatureKrometrailAIDBmcp-debuggermcp-dap-server
Viewport abstraction
Context compression
Browser observation
10+ languages
Conditional breakpoints
Watch expressions
Framework detection
CLI parity
Token awareness

✓ Full support   ◐ Partial   ✗ Not supported