Easy debugging, profiling and tracing for PHP with Xdebug
Xdebug Helper for Chrome makes it incredibly easy to enable or disable Xdebug debugging, profiling, and tracing. Just click the icon in your browser toolbar to quickly switch between modes without manually setting cookies or modifying URL parameters.
Xdebug Helper is a Chrome extension designed for PHP developers that makes it incredibly easy to enable or disable Xdebug debugging, profiling, and tracing.
Simply click the icon in your browser toolbar to quickly switch between Xdebug modes without manually setting cookies or modifying URL parameters.
- ✅ Simple to Use: One-click toggle between debug, profile, and trace modes
- ✅ Xdebug 3.x Support: Native support for XDEBUG_SESSION_START URL parameter
- ✅ Multi-IDE Compatible: Supports VSCode, PhpStorm, IntelliJ IDEA, Eclipse, NetBeans, and more
- ✅ Manifest V3: Built with the latest extension standards for better performance
- ✅ Zero Dependencies: Pure native JavaScript, no jQuery or external libraries
- ✅ Multi-tab Support: Independent debug state control for each tab
- Download the source code: GitHub
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in the top right corner)
- Click "Load unpacked"
- Select the extracted source directory
Visit the Chrome Web Store to install the latest version.
- Removed jQuery Dependency: Full migration to native JavaScript, significantly reducing extension size
- Removed keymaster.js: Using Chrome's native commands for keyboard shortcuts
- Code Modernization: ES6+ syntax (async/await, arrow functions, etc.)
- UI Redesign: Simplified interface with CSS-based icons
- No External Dependencies: No longer depends on Google Fonts or Material Icons
- Fixed message port closure errors
- Removed auto-enable Xdebug logic on page load to prevent conflicts
- Optimized async operation handling
- Upgraded to Manifest V3, minimum Chrome version 88
- Background script changed to Service Worker
- Migrated from localStorage to chrome.storage API
- Added XDEBUG_SESSION_START URL parameter support
- Cookie + URL hybrid mode to maintain debug state during page navigation
- Full backward compatibility with Xdebug 2.x (Cookie mode)
- IDE Key presets (VSCode, PhpStorm, IntelliJ IDEA, etc.)
- Custom Trace/Profile trigger values
- Disable popup option for direct click-to-toggle
- Enhanced error handling
| Shortcut | Function |
|---|---|
Ctrl+Shift+X (Mac: Cmd+Shift+X) |
Open extension popup |
Alt+Shift+X |
Directly toggle debug state |
Select your IDE from the dropdown menu:
| IDE | IDE Key |
|---|---|
| Visual Studio Code | vsc |
| PhpStorm | PHPSTORM |
| IntelliJ IDEA | idea |
| Eclipse | eclipse |
| NetBeans | netbeans-xdebug |
| MacGDBp | macgdbp |
| Custom | Enter any value |
| Status | Icon | Description |
|---|---|---|
| Disabled | 🐛 Gray | All Xdebug functions disabled |
| Debug | 🐛 Green | Enable breakpoint debugging |
| Profile | ⏰ Blue | Enable performance profiling |
| Trace | 📄 Purple | Enable code tracing |
When "Use XDEBUG_SESSION_START URL parameter" is enabled:
- Initial trigger uses
?XDEBUG_SESSION_START=<idekey>URL parameter - Also sets cookies to maintain debug state during page navigation
- Recommended for Xdebug 3.0 and later versions
When this option is checked:
- Clicking the extension icon toggles debug state directly (no popup)
- Only toggles between "Debug" and "Disabled" modes
- Cookie Mode: Sets
XDEBUG_SESSION=<idekey>cookie - URL Parameter Mode: Sets
XDEBUG_SESSION=<idekey>cookie AND adds?XDEBUG_SESSION_START=<idekey>to URL, then reloads the page
Sets XDEBUG_PROFILE=<trigger> cookie to enable performance profiling
Sets XDEBUG_TRACE=<trigger> cookie to enable code tracing
Clears all Xdebug-related cookies and URL parameters, sets XDEBUG_DISABLED=1 cookie
Issues and Pull Requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
xdebug-helper-for-chrome/
├── source/
│ ├── manifest.json # Extension manifest
│ ├── background.js # Service Worker script
│ ├── content.js # Content script (injected into pages)
│ ├── popup.js # Popup logic
│ ├── popup.html # Popup page
│ ├── popup.css # Popup styles
│ ├── options.js # Options page logic
│ ├── options.html # Options page
│ ├── options.css # Options page styles
│ └── images/ # Icon resources
└── Readme.md
Firefox users can try the Firefox version developed by BrianGilbert.
This project is licensed under the MIT License, free for use in both commercial and non-commercial projects.
- remailednet for creating the original XDebug Enabler
- Guilherme Pim for contributing the Manifest V2 version
- All contributors for their code contributions