web-pdb
Web interface for Python's built-in PDB debugger
What it is and what it does
Web-PDB wraps Python's built-in PDB debugger with a responsive web interface, letting you debug scripts in a browser instead of a terminal. You insert `web_pdb.set_trace()` into your code, and when execution reaches that point, a web UI opens on a configurable port (default 5555) where you can step through code, inspect variables, and run PDB commands. The interface shows the current file with breakpoint markers, local and global variables, and command history.
Since v2.0, Web-PDB has no external dependencies beyond Python's standard library (it uses asyncio for the HTTP server). It works with Python's built-in `breakpoint()` function via the `PYTHONBREAKPOINT` environment variable, and includes a `catch_post_mortem()` context manager for automatic post-mortem debugging on unhandled exceptions. The project is in minimum maintenance mode—bug fixes and Python version compatibility are prioritized, but new features are not actively developed.
Use it for:
- Debug a Python script running on a remote server by opening the web UI from your local browser without SSH terminal access.
- Inspect program state during development using a visual interface with syntax highlighting and variable inspection instead of typing PDB commands.
- Debug multiple processes by running separate `set_trace()` calls on different ports and opening each in its own browser tab.
- Catch and debug unhandled exceptions in a specific code block using `catch_post_mortem()` context manager.
- Use `breakpoint()` in Python 3.7+ code to launch Web-PDB automatically via environment variable without code changes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Web-PDB provides a web browser interface for Python's built-in PDB debugger, allowing you to debug Python scripts remotely and interactively through a web UI instead of a command-line terminal.
Yes, if you need remote or browser-based debugging of Python scripts. The zero runtime dependencies, recent maintenance, and permissive license make it a low-risk addition. Not suitable if you require active feature development or need to debug in environments where a separate HTTP server thread is problematic (e.g., some serverless runtimes). Single-session browser limitation is a minor gotcha for team debugging.
Install
web-pdb on PyPI
pip
pip install web-pdbuv
uv add web-pdbpoetry
poetry add web-pdbInstalling web-pdb
Before you install
Low friction—a pure-Python wheel with no runtime dependencies beyond the standard library. Maintenance is in minimum mode: the author prioritizes Python version compatibility and critical bug fixes but is not actively developing new features. Last release was recent.
License in practice
MIT License is permissive; you can use, modify, and distribute Web-PDB freely in commercial and private projects with minimal restrictions.
Quickstart
pip install web-pdb
import web_pdb
web_pdb.set_trace()
# Your code pauses here; open http://localhost:5555 in a browser to debug
Requires Python 3.8 or later. Single browser session recommended—multiple concurrent sessions may display incorrect data.
Verify before relying
- Whether the asyncio-based HTTP server running in a separate thread creates issues in specific deployment environments (e.g., serverless, containerized).
- Performance or stability impact when debugging long-running or high-concurrency applications.
Package facts
| License | MIT License (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 85 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 82,641/month — #14,148 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: web_pdb-2.0.1-py3-none-any.whl
Keywords: pdb, remote, web, debugger'
Tags
More Debuggers packages
Extracts and displays stack frame and traceback…
permissive · top 1,000 on PyPI
debugpydebugpy is a Debug Adapter Protocol…
permissive · top 1,000 on PyPI
pylintPylint is a static code analyzer that checks…
copyleft · top 1,000 on PyPI
yamllintyamllint checks YAML files for syntax errors,…
copyleft · top 1,000 on PyPI
ipdbipdb is an IPython-enabled debugger that…
permissive · top 5,000 on PyPI
memrayMemray is a memory profiler for Python that…
permissive · top 5,000 on PyPI
pdb-attachAttaches a Python debugger (pdb) to…
permissive · top 15,000 on PyPI
pdbrpdbr enhances Python's built-in debugger with…
unclear · top 5,000 on PyPI
remote-pdbExposes Python's debugger (pdb) over a TCP…
permissive · top 5,000 on PyPI
httpdbghttpdbg intercepts and displays HTTP(S)…
permissive · top 15,000 on PyPI
pudbPuDB is a full-screen console-based visual…
permissive · top 5,000 on PyPI
rpdbrpdb is a remote debugger that wraps Python's…
unclear · top 15,000 on PyPI
pdbppdbp is an enhanced Python debugger that…
permissive · top 5,000 on PyPI
pdbpppdbpp is a drop-in replacement for Python's…
permissive · top 5,000 on PyPI