Draw the few that matter
A canvas is the handful of services you are working on today, out of however many there are. Drag them on from your launch configurations and Run starts them all, each in VS Code's own debugger, breakpoints and all.
Debugt runs the services you are working on, sends them a request, and shows each hop it made between them — and what each one's code did with it. All of it on your machine.
Free to use, with no account. Nothing about your services leaves your machine.
A service calls two others, one of those calls a third, and the question is which of them went wrong. Debugt answers it in the order you would ask.
A canvas is the handful of services you are working on today, out of however many there are. Drag them on from your launch configurations and Run starts them all, each in VS Code's own debugger, breakpoints and all.
Send a request and watch the tree fill in while it is still happening: each service it reached, each call that service made, each message it put on a queue and who took it off — with what was sent and what came back.
Open a hop to see its execution: every call, line and return in that service's own code while it handled the request, with the values at each. The answer to “why did it return that?” without a breakpoint.
Draw a line between two services and the first one's calls to the remote go to the one running on your machine instead. No config file edited, no environment variable to remember to put back.
Have a library function return a value of your own — the payment gateway that declines, the clock that says it is midnight — for the services on the canvas, and only while they run from it.
A request runner beside the canvas, with every send in Request History: its hops, its payloads and its recordings, to read back or send again. Requests from Postman or a phone are recorded too.
A tracer goes into each service as Debugt starts it — nothing is added to your code or your repositories. Calls over HTTP and messages over RabbitMQ are followed from one service into the next, whatever each is written in. Which protocols each language is traced for, and its limits.
| Service | Hops | Execution |
|---|---|---|
| Node.js | Yes | Yes |
| Python | Yes | Yes, 3.12+ |
| Java, Kotlin, Scala | Yes | Yes |
| Go | Yes | Yes |
| PHP | Yes | Not yet |
Traces are real payloads, so they stay where they were made: in a folder on your machine, outside your repositories. Passwords, tokens and cookies are redacted before a hop is even recorded. There is no telemetry. On the Free plan nothing is sent at all; a license check sends four things, listed in full, and none of them is yours.
Up to 5 services running at once and 5,000 recorded steps a request, with no account. Pro takes the limit off services and records 200,000.