LabscoMCP early access ↗
flashusMCP SERVER

Detrix

Watch a variable at any line of a running program — no code change, no restart, no pause.

by flashus ↗Runtime Debugging & Crash AnalysisCommunity

LABSCO SUMMARY

Your agent can see inside a process that is still running.

It replaces the print-rebuild-redeploy loop with a question: the agent finds the line, plants an observation point, and reads the values back live — which is what makes an intermittent bug in a container investigable at all.

What it is

A daemon that sits between your agent and a live process and sets logpoints — breakpoints that evaluate an expression and log the result instead of stopping execution. Underneath it drives the Debug Adapter Protocol, or eBPF uprobes on Linux for Go and Rust binaries. Your application keeps running at full speed while values are captured and stored.

What you get

  • 29 MCP tools for observing a line, querying what was captured, enabling and disabling observation groups, and cleaning up afterwards
  • add_metric to start watching, and find_variable to locate the variable in the running process when you cannot give a line number
  • Capture modes that keep the volume down: stream, sample, throttle, first-hit, and periodic sampling every N seconds
  • Multiple variables per observation point, plus stack traces, memory snapshots and expression evaluation
  • Events stored in SQLite on the daemon host, so you can leave it running overnight and ask in the morning what happened
  • Python through debugpy, Go through delve, Rust through lldb-dap, with Go on Linux using eBPF automatically

Requirements

Install with Homebrew, the shell installer, or PowerShell on Windows; the daemon runs locally or alongside your service in a container, and detrix mcp is the stdio bridge your client launches. Nothing needs to change in your code to start, though embedding detrix.init() once — the clients are on PyPI, Go modules and crates.io — means you never restart again; otherwise one restart attaches the debugger. For cloud and container work set DETRIX_ADVERTISE_URL so the bridge knows where the daemon is, and DETRIX_TOKEN on both daemon and client for multi-tenant deployments. Variables whose names look sensitive — password, api_key, token, secret, private_key — are blocked before capture, with the blacklist and whitelist configurable in detrix.toml, and a per-connection safe mode restricts a session to variable watching only. Building from source needs Rust 1.80+.

Setup effort

One command — brew install flashus/tap/detrix