debugpy
An implementation of the Debug Adapter Protocol for Python
Decision gist · record as of 2026-08-14
Yes. debugpy is a mature, actively maintained, zero-dependency debugger with no known vulnerabilities, permissive licensing, and wide platform support. Install it if you need remote debugging, DAP client integration, or programmatic control over breakpoints and exception handling.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; debugger client must be able to connect to the specified host and port.
- Low install friction with a pure-wheel distribution.
- The package is actively maintained with a recent release and no runtime dependencies, making it straightforward to add to any Python 3.8+ environment.
License · maintenance · safety
MIT (permissive) — MIT license is permissive and poses no restrictions on use, modification, or distribution in commercial or private projects.
last release 2026-06-01 (74 days) · last repo commit 2026-08-13 · 2,456 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 107,550,466 downloads/mo, #325 on PyPI
Alternatives
Verify before relying
pip install debugpy
# Command line: run script with debugging enabled
python -m debugpy --listen localhost:5678 myfile.py
# Or in code:
import debugpy
debugpy.listen(("localhost", 5678))
debugpy.wait_for_client()
# code continues after client attaches- Whether debugpy can debug code running in restricted environments without additional configuration
- Performance overhead when debugging large or long-running applications
- Compatibility with async/await debugging and coroutine inspection
What it is and what it does
debugpy is a production-grade debugger for Python that implements the Debug Adapter Protocol, allowing you to debug Python code from any DAP-compatible client. You can launch scripts or modules with debugging enabled, attach to running processes by PID, and control execution with breakpoints, step commands, and exception handlers. The debugger runs as a server listening on a specified host and port, waiting for a client to connect and send debug commands.
You use debugpy either via the command line or by importing it directly in your code and calling functions like `debugpy.listen()`, `debugpy.wait_for_client()`, and `debugpy.breakpoint()`. It supports Windows, Linux, and macOS, works with Python 3.8 through 3.14, and includes features like subprocess debugging control, post-mortem exception debugging, and internal logging for troubleshooting.
Use it for
- Debug a Python script running on a remote server or in a container from your local IDE without modifying the deployment environment
- Attach a debugger to a long-running Python process by PID to inspect state and step through code without restarting
- Embed debugging capability in a Python application so clients can connect and inspect execution when issues occur
- Debug Python modules and packages with full breakpoint and expression evaluation support from DAP clients
- Perform post-mortem debugging of caught exceptions to inspect the call stack and local variables at the point of failure
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
debugpy is a mature, actively maintained, zero-dependency debugger with no known vulnerabilities, permissive licensing, and wide platform support. Install it if you need remote debugging, DAP client integration, or programmatic control over breakpoints and exception handling.
Install
debugpy on PyPI
Before you install
Low install friction with a pure-wheel distribution. The package is actively maintained with a recent release and no runtime dependencies, making it straightforward to add to any Python 3.8+ environment.
Requires Python 3.8 or later; debugger client must be able to connect to the specified host and port.
License in practice
MIT license is permissive and poses no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install debugpy
# Command line: run script with debugging enabled
python -m debugpy --listen localhost:5678 myfile.py
# Or in code:
import debugpy
debugpy.listen(("localhost", 5678))
debugpy.wait_for_client()
# code continues after client attaches
Verify before relying
- Whether debugpy can debug code running in restricted environments without additional configuration
- Performance overhead when debugging large or long-running applications
- Compatibility with async/await debugging and coroutine inspection
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 74 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 107,550,466 / month, #325 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Debuggers |
Evidence: debugpy-1.8.21-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python debugger dap”
- debugpydebugpy is a Debug Adapter Protocol implementation for Python that…
- instructure-dap-clientClient library for querying Instructure's Data Access Platform (DAP),…
- pydevd-pycharmPyCharm's debugger backend for remote debugging of Python processes…
Give your agent the search over MCP, or paste the wish link into any chat.
More Debuggers packages
Extracts and displays stack frame and traceback data with context-aware source code rendering, used to power enhanced tracebacks in IPython and similar tools.
Install it if you need to display or inspect stack frames with source context; skip it if your use case doesn't involve frame introspection.
Pylint is a static code analyzer that checks Python code for errors, enforces coding standards, detects code smells, and suggests refactoring improvements without executing the code.
Install it if you need thorough code analysis with inference-based bug detection; if speed is critical, consider pairing it with faster linters like ruff for…
yamllint checks YAML files for syntax errors, style violations, and structural problems like key repetition, line length, trailing spaces, and indentation issues.
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.
Memray is a memory profiler for Python that traces every function call to track memory allocations across Python code, native extensions, and the interpreter itself, generating reports like flame graphs and tables to analyze memory usage.
pyelftools parses and analyzes ELF binary files and DWARF debugging information in pure Python, with no external dependencies.
Install it if you need to read or analyze ELF binaries or debug information from Python.
See also remote-pdb · pdb-attach · pydevd · web-pdb · pdbp · pydevd-pycharm · debug-mgr · lauterbach-trace32-rcl · pygdbmi · instructure-dap-client