This is a fork of the original vscode-js-debug-companion project, which allows running the same code as a standalone process instead of a VS Code extension. It's used by Zed to support browser debugging in SSH and WSL projects.
The CLI is launched as follows:
node out/cli.js --listen=localhost:3000 --state=/path/to/state/dirThis launches a process that will listen for HTTP requests on the specified address. There are two endpoints:
POST /launch-and-attach: Corresponds to the VS Codejs-debug-companion.launchAndAttachcommand.POST /kill: Corresponds to the VS Codejs-debug-companion.killcommand.
The body for each request should be the same JSON payload that's provided to the corresponding command by vscode-js-debug. The process can handle launching and killing multiple browsers during its lifetime.
A companion extension to js-debug to enable remote Chrome debugging. You probably don't want to install this extension by itself, but for your interest, this is what it does.
The scenario is if you are developing in a remote environment—like WSL, a container, ssh, or VS Codespaces—and are port-forwarding a server to develop (and debug) in a browser locally. For remote development, VS Code runs two sets of extensions: one on the remote machine, and one on your local computer. js-debug is a "workspace" extension that runs on the remote machine, but we need to launch and talk to Chrome locally.
That's where this companion extension comes in. This helper extension runs on the local machine (in the "UI") and registers a command that js-debug can call to launch a server. js-debug requests a port to be forwarded for debug traffic, and once launching a browser the companion will connect to and forward traffic over that socket.