simple-dap-gui guzmandrade-dev
winget install --id=guzmandrade-dev.simple-dap-gui -e simple-dap-gui is a lightweight, cross-platform desktop debugger for DAP (Debug Adapter Protocol) targets such as Xdebug, Python, and Node.js.
winget install --id=guzmandrade-dev.simple-dap-gui -e simple-dap-gui is a lightweight, cross-platform desktop debugger for DAP (Debug Adapter Protocol) targets such as Xdebug, Python, and Node.js.
A standalone DAP (Debug Adapter Protocol) client GUI application built with Electron, React, TypeScript, and PrismJS. Primarily designed for PHP debugging with Xdebug.
vscode-php-debug adapter${workspaceFolder} resolution in path mappingsClick the gutter to toggle breakpoints. The current execution line is highlighted in yellow.

The same view in light mode.

Monitor custom expressions as you step through code.

Install, uninstall, and manage DAP adapters from the built-in catalog.

dap-gui/
├── electron/ # Electron main process
│ ├── main.ts # Entry point
│ └── preload.ts # Preload script for IPC
├── src/
│ ├── dap/ # DAP protocol implementation
│ │ ├── client.ts # DAP client with protocol parser
│ │ ├── session.ts # Debug session management
│ │ └── types.ts # TypeScript type definitions
│ ├── components/ # React components
│ │ ├── Editor/ # PrismJS code viewer
│ │ ├── FileExplorer/ # Workspace file tree with lazy loading
│ │ ├── Panels/ # Side panels (stack, variables, watch, breakpoints, settings, adapters)
│ │ ├── Toolbar/ # Debug controls
│ │ └── StatusBar/ # Status bar
│ ├── styles/ # Theme CSS (dark/light) with CSS custom properties
│ ├── stores/ # Zustand state stores
│ └── utils/ # Helper utilities
└── ...
Once published, install the app through your platform's package manager:
winget install guzmandrade-dev.simple-dap-guibrew install --cask simple-dap-guiflatpak install flathub com.guzmandrade.SimpleDapGui> Note: Installers are currently not code-signed. On Windows you may see a Microsoft Defender SmartScreen prompt the first time you run the app; click More info → Run anyway to proceed.
Releases are published automatically from GitHub Releases via:
.github/workflows/winget.yml.github/workflows/homebrew-cask.ymldistrib/flathub/com.guzmandrade.SimpleDapGui.yml (submit to flathub/flathub)# Install dependencies
npm install
# For PHP debugging, install the PHP debug adapter:
# Option 1: Download from GitHub releases
# https://github.com/xdebug/vscode-php-debug/releases
# Option 2: Clone and build
git clone https://github.com/xdebug/vscode-php-debug.git
cd vscode-php-debug
npm install
npm run build
# Copy out/ folder to your project
.vscode/ folder:{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
}
}
]
}
npm run dev
Select a configuration from the dropdown in the toolbar
Click Debug (or press F5) to start debugging
Set breakpoints by clicking in the gutter area
Toggle Theme between dark and light via the Settings panel
| Shortcut | Action |
|---|---|
| F5 | Start Debugging / Continue |
| Shift + F5 | Stop Debugging |
| F10 | Step Over |
| F11 | Step Into |
| Shift + F11 | Step Out |
Inspect local and global variables at the current stack frame. Expand arrays and objects to view their children.
Add custom expressions (e.g., $myVariable, $_SERVER['REQUEST_URI']) to monitor their values as you step through code. Watches are re-evaluated automatically on every stop.
Navigate between stack frames to inspect variables at different levels of execution. Click any frame to jump directly to its source file and line in the editor.
View and manage all breakpoints set across the workspace. Enable Persistent Breakpoints in Settings to save them to .vscode/dap-gui.breakpoints.json and restore them on the next session.
Install, uninstall, and manage DAP adapters. The built-in catalog currently lists the PHP Debug adapter. You can also install any adapter from a .vsix file.
Configure your preferred editor in the Settings panel:
codezedvim{file}, {line})Use "Open Workspace in Editor" to open the current workspace root directly. External editor commands are resolved against your PATH (where on Windows, which on macOS/Linux) with a fallback to common install locations.
Click the → arrow in the editor header to collapse the editor panel. This gives the file explorer and debug panels more room. When collapsed:
The app supports dark and light themes via CSS custom properties mapped to Tailwind's semantic color tokens (bg-panel, text-accent, border-danger, etc.). Themes are persisted to localStorage and switch instantly across the UI and PrismJS code viewer.
Install or uninstall DAP adapters from the Adapters panel. The manager tracks installed adapters, their paths, and supported languages.
vscode-php-debug — primary and tested adapterFuture versions may expand first-class support to:
debugpyvscode-cpptoolsIn the meantime, any DAP-compatible adapter can be installed manually via the Install from .vsix button.
# Run in development mode with hot reload
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
The application supports path mappings for remote debugging. Configure them in your launch.json:
"pathMappings": {
"/server/path": "${workspaceFolder}/local/path"
}
${workspaceFolder} is automatically resolved to the current workspace root, so breakpoints and stack traces map correctly between server and local paths.
By default, breakpoints are kept in memory only. To save them across sessions:
.vscode/dap-gui.breakpoints.json in your workspaceThe code viewer always loads the latest file content from disk when you open a file. If you edit a file in an external editor while it's already open, click the Reload button in the editor toolbar to refresh the content.
${workspaceFolder} are resolved against the opened workspace root.MIT