If you find Xdebug useful, please consider supporting the project.

DBGp Proxy Tool

This tool allows you to proxy and route debugging request to IDEs depending on which IDE key is in use.

Installation #

A binary for Linux, macOS, and Windows is available on the downloads page. You only have to download the binary, which you can then run from a command line.

Command Line Options #

The following command line options are available:

-h Show this help
-i host:port
--client host:port
Specify the port to listen on for IDE (client) connections [localhost:9001].
-s host:port
--server host:port
Specify the port to listen on for debugger engine (server) connections [localhost:9003].
-v Show version number and exit

Usage #

To start the client on the command line on Linux, open a shell, and then run:


If the binary doesn't start or you get a not found message, please refer to this FAQ entry.

To start the client on the command line on macOS, open a shell, and then run:


On Windows, open a command a Command Prompt and run:


In all cases, you can add the command line options as described above.

When the proxy starts, it shows some version information. It will then wait until a connection is made to it by a debugging engine (such as Xdebug):

Xdebug DBGp proxy (0.3)
Copyright 2020 by Derick Rethans
15:17:35.423 [warn] [SSL] The 'certs/fullchain.pem' file could not be found, not enabling SSL listeners
15:17:35.424 [info] [dbgpProxy] Proxy started
15:17:35.424 [info] [server] Started server server on
15:17:35.424 [info] [server] Started client server on

When a client registers itself with the proxy it displays the IDE Key and where to reach that client:

15:18:57.087 [info] [server] Start new client connection from
15:18:57.087 [info] [proxyinit] [derickr] Added connection for IDE Key 'derickr':
15:18:57.087 [info] [server] Closing client connection from

At this point the client should be ready to take incoming debugging connections to its registered port ( in this example).

You can stop the proxy by pressing Ctrl-C in its terminal. Once all debugging connections are closed, the proxy service will stop.