pudb
A full-screen, console-based Python debugger
What it is and what it does
PuDB is a terminal-based Python debugger that replaces the command-line pdb with a full-screen interface where your source code, variables, stack trace, and breakpoints are all visible and continuously updated. It uses keyboard shortcuts (Vi-style and cursor keys supported) to navigate, set breakpoints, step through code, and inspect state—all without leaving your terminal. The package depends on urwid for terminal UI rendering, jedi for code completion, pygments for syntax highlighting, and a few utility libraries.
You launch it by running your script through the pudb module or by calling set_trace() in your code. It supports themes (light and dark), exception post-mortem debugging, dropping into a Python shell mid-session, and module browsing. The aging maintenance status (last release 251 days ago) suggests the core functionality is stable but new features or bug fixes may arrive slowly.
Use it for:
- Debug Python scripts interactively in a terminal without switching to a GUI IDE.
- Inspect variable state and stack frames with a full-screen view while stepping through code.
- Set and manage breakpoints visually by navigating to a line and pressing 'b'.
- Perform post-mortem debugging after an exception to trace the crash path.
- Drop into a Python shell mid-debugging session to test expressions in the current scope.
- Debug on remote or headless servers where GUI debuggers are impractical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PuDB is a full-screen console-based visual debugger for Python that brings GUI debugger features into the terminal, letting you inspect code, variables, and stack traces with keyboard navigation.
Yes, if you spend significant time debugging in the terminal and want a more visual alternative to pdb. The low install friction, permissive license, and stable feature set make it a solid choice. The aging maintenance status is a minor concern—expect slower updates—but the package is mature and widely used (top 5000 on PyPI). No known vulnerabilities.
Install
pudb on PyPI
pip
pip install pudbuv
uv add pudbpoetry
poetry add pudbInstalling pudb
Before you install
Low friction install with six runtime dependencies (jedi, packaging, pygments, typing-extensions, urwid-readline, urwid). Maintenance status is aging—last release was 251 days ago—so expect slower response to issues, though the package has been stable since 2009.
License in practice
MIT license is permissive; you can use, modify, and distribute PuDB freely in both open-source and proprietary projects with minimal restrictions.
Quickstart
pip install pudb
python -m pudb your_script.py
# Or in code:
import pudb; pudb.set_trace()
Requires Python 3.8 or newer; terminal must support curses (POSIX/Unix environments; Windows requires WSL or similar).
Verify before relying
- Whether IPython integration (mentioned in description) is fully functional in current version.
- Whether remote debugging from a separate terminal is actively maintained.
- Performance characteristics when debugging large codebases or deeply nested call stacks.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (~=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — jedi, packaging, pygments, typing-extensions, urwid-readline, urwid |
| Maintenance | aging — 251 days since the last release |
| First released | |
| Downloads | 1,534,132/month — #3,801 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pudb-2025.1.5-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
flake8-debuggerA flake8 plugin that detects debugger…
permissive · top 15,000 on PyPI
web-pdbWeb-PDB provides a web browser interface for…
permissive · top 15,000 on PyPI
pdbppdbp is an enhanced Python debugger that…
permissive · top 5,000 on PyPI
pdbrpdbr enhances Python's built-in debugger with…
unclear · top 5,000 on PyPI
ipdbipdb is an IPython-enabled debugger that…
permissive · top 5,000 on PyPI
pdbpppdbpp is a drop-in replacement for Python's…
permissive · top 5,000 on PyPI
rpdbrpdb is a remote debugger that wraps Python's…
unclear · top 15,000 on PyPI
vivisectVivisect is a pure-Python disassembler,…
permissive · top 15,000 on PyPI
pdb-attachAttaches a Python debugger (pdb) to…
permissive · top 15,000 on PyPI
pydevdpydevd is a Python debugger backend that…
copyleft · top 5,000 on PyPI