ipdb
IPython-enabled pdb
What it is and what it does
ipdb is a drop-in replacement for Python's built-in pdb debugger that layers IPython's interactive features on top of the standard debugging interface. It provides tab completion, syntax highlighting, and improved tracebacks while keeping the same function signatures and workflow developers already know from pdb.
You use it by importing ipdb and calling set_trace() at a breakpoint, or by wrapping code in launch_ipdb_on_exception() to catch exceptions interactively. Configuration can be set via environment variables, a .ipdb file, setup.cfg, or pyproject.toml to control how many lines of context are shown. The package also provides command-line entry points (ipdb and ipdb3) to debug scripts directly.
Use it for:
- Debug Python scripts from the command line with enhanced introspection and tab completion instead of plain pdb.
- Set conditional breakpoints that trigger only when a specific condition is true using the cond parameter.
- Inspect code context with configurable line counts to see more or less surrounding code at each breakpoint.
- Catch and debug exceptions interactively without stopping the entire application using launch_ipdb_on_exception().
- Decorate functions to automatically launch the debugger if they raise an exception using the iex decorator.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ipdb is an IPython-enabled debugger that replaces Python's standard pdb with tab completion, syntax highlighting, and better introspection while maintaining the same pdb interface.
Yes. ipdb is a low-friction, actively maintained tool that meaningfully improves the debugging experience by adding IPython's interactive features to pdb without changing the interface. No security vulnerabilities, permissive license, and broad Python version support make it a straightforward upgrade for any developer who debugs Python code.
Install
ipdb on PyPI
pip
pip install ipdbuv
uv add ipdbpoetry
poetry add ipdbInstalling ipdb
Before you install
Low friction install with 5 runtime dependencies. Actively maintained as of 2026-02-27 with 1976 repository stars. No known security vulnerabilities.
License in practice
BSD permissive license allows use in most projects without significant restrictions.
Quickstart
import ipdb
ipdb.set_trace()
# or
ipdb.set_trace(context=5)
# or
from ipdb import launch_ipdb_on_exception
with launch_ipdb_on_exception():
pass
Verify before relying
- Whether the package's IPython dependency constraints (varying by Python version per changelog) are automatically resolved by pip or require manual specification.
- Performance characteristics when debugging large codebases or long-running processes.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — ipython, toml, decorator, pathlib, tomli |
| Maintenance | actively maintained — 1,254 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 18,366,954/month — #1,085 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ipdb-0.13.13-py3-none-any.whl
Keywords: pdb, ipython
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
memrayMemray is a memory profiler for Python that…
permissive · top 5,000 on PyPI
pyelftoolspyelftools parses and analyzes ELF binary files…
permissive · top 5,000 on PyPI
flake8-debuggerA flake8 plugin that detects debugger…
permissive · top 15,000 on PyPI
ipythonIPython is an enhanced interactive Python shell…
permissive · top 1,000 on PyPI
pdbrpdbr enhances Python's built-in debugger with…
unclear · top 5,000 on PyPI
rpdbrpdb is a remote debugger that wraps Python's…
unclear · top 15,000 on PyPI
pudbPuDB is a full-screen console-based visual…
permissive · top 5,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
pdbpppdbpp is a drop-in replacement for Python's…
permissive · top 5,000 on PyPI
remote-pdbExposes Python's debugger (pdb) over a TCP…
permissive · top 5,000 on PyPI
pyxdiapyxdia extracts program metadata and symbol…
unclear · top 15,000 on PyPI