What problem does it solve?
It helps you quickly locate bugs in Python by letting you inspect program state interactively with pdb and, when needed, attach remotely with debugpy via DAP.
Core Features & Use Cases
- Interactive local debugging with pdb: Use
breakpoint() or python -m pdb to pause execution and inspect locals, stack frames, and expressions at the exact failing line.
- Remote/headless debugging with debugpy (DAP): Attach to long-running processes like a Hermes gateway or troubleshoot production-ish hangs without restarting.
- Test debugging and post-mortems: Trap failing pytest tests safely and inspect exceptions at the crash site using
pdb.post_mortem.
Example use case: A Hermes gateway misbehaves and you cannot restart it; you attach with debugpy, hit a breakpoint in the handler, and inspect variables and the call stack to identify the faulty code path.
Quick Start
Use the python-debugpy skill to debug a failing test by running your hermes test wrapper with --pdb so you land in a pdb prompt at the relevant failure point.