Interactive PHP step debugger for your terminal. Made on planet earth with effort.
Find a file
CyberVitexus aff544e0bf fix: disable debian:forky build in Jenkinsfile(s)
Forky is still unstable/research-only. The full Debian package
ecosystem is not yet available for Forky, causing cascading
unmet dependency failures. Re-enable once the full stack builds
cleanly for Forky.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 09:44:57 +02:00
.github/workflows Try macos (#32) 2025-05-10 19:13:08 +01:00
debian fix: disable debian:forky build in Jenkinsfile(s) 2026-05-20 09:44:57 +02:00
demo Pass PHP script as argument (#63) 2026-01-25 12:37:18 +00:00
example/demo Pass PHP script as argument (#63) 2026-01-25 12:37:18 +00:00
php Pass PHP script as argument (#63) 2026-01-25 12:37:18 +00:00
src Do not deadlock when executing an eval when xdebug is running 2026-01-27 15:52:44 +00:00
.gitignore Add Debian packaging for xdebug-tui 0.3.1 2026-02-26 09:39:55 +01:00
Cargo.lock Pass PHP script as argument (#63) 2026-01-25 12:37:18 +00:00
Cargo.toml Pass PHP script as argument (#63) 2026-01-25 12:37:18 +00:00
CHANGELOG.md Do not deadlock when executing an eval when xdebug is running 2026-01-27 15:52:44 +00:00
flake.lock ADd flake 2025-03-29 15:17:22 +00:00
flake.nix ADd flake 2025-03-29 15:17:22 +00:00
README.md Add Debian packaging for xdebug-tui 0.3.1 2026-02-26 09:39:55 +01:00
rustfmt.toml View refactor (#3) 2025-04-05 23:38:18 +01:00

Debug-TUI

Interactive Xdebug step-debugging client for your terminal.

Demo

  • Travel forwards: step over, into and out.
  • Travel backwards: it's not quite time travel - but you can revisit and inspect previous steps in history mode.
  • Jump the stack: jump up and down the stack.
  • Vim-like motions: Typing 100n will repeat "step into" 100 times.
  • Inline values: Show variable values inline with the source code.
  • Process control: Launch, monitor and restart the process being debugged.

Installation

  • Download the latest release.
  • Compile it yourself cargo build.
  • Install the Debian package: sudo dpkg -i xdebug-tui_*.deb

Building the Debian package

dpkg-buildpackage -us -uc -b

CLI options

  • --log: Debug log to file.
  • --listen: Listen on an alternative address (defaults to 0.0.0.0:9003).

In addition you can optionally specify a process to debug:

$ debug-tui -- php path/to/script.php

Key bindings

Prefix with number to repeat:

  • r run
  • n next / step into
  • N step over
  • p previous (switches to history mode if in current mode)
  • o step out
  • R restart process if one was provided
  • j down
  • J down 10
  • k up
  • K up 10
  • h left
  • H left 10
  • l right
  • L right 10
  • + increase context depth
  • - decrease context depth
  • tab switch pane
  • enter toggle pane focus (full screen)
  • t rotate the theme
  • ? Show help
  • f Filter (context pane) - use dot notation to filter on multiple levels.

Setting Breakpoints

debug-tui has no mechanism for setting a breakpoint but you can use the function xdebug_break() in your code:

<?php

function my_function() {
    xdebug_break(); // break after this line
}