A visual and command-line developer tool for testing and debugging Model Context Protocol (MCP) servers, with web, CLI, and terminal UI modes.
inducer/pudb
A full-screen, keyboard-driven console debugger for Python that shows source, stack, breakpoints and variables at once.
- Stars
- 3,252
- Forks
- 245
- Open issues
- 164
- Last commit
- 6 days ago
What is it?
PuDB brings the layout of a modern GUI debugger into the terminal. Source code with syntax highlighting, the call stack, breakpoints and variables are shown together and kept up to date while the program runs, so you can debug code where you write and test it.
Navigation relies on single keystrokes, with cursor keys and Vi-style shortcuts supported. Other commands are modeled on pdb. You can set breakpoints from the source view, run to the cursor, open a Python shell in the current environment, and browse or reload loaded modules. Post-mortem mode lets you step back through the last moments of a crashing program.
PuDB includes several built-in themes, including dark ones, and integrates with IPython. It also supports pytest and can be controlled from a separate terminal. It targets Python 3.6 and newer.
Key features
- 01Syntax-highlighted source, stack, breakpoints and variables shown together and updated live
- 02Single-keystroke navigation with cursor keys and Vi shortcuts
- 03Set breakpoints by pointing at a line and pressing b; run to cursor with t
- 04Post-mortem mode for retracing a crashing program
- 05Module browser, Python shell in the current environment, and IPython integration
- 06Built-in light and dark themes
Use cases
- Debugging Python scripts over SSH or in a plain terminal without a GUI
- Stepping through a failing pytest test interactively
- Inspecting the state of a crash after an unhandled exception
- Keyboard-focused debugging for developers who prefer staying in the terminal
Quick start
- 1
Find the package on the Python Package Index (PyPI)
- 2
Get the development version with Git
git clone https://github.com/inducer/pudb.git
Things to know
- The license is not clearly stated in the metadata, so check the repository before using it.
- Python 2.7 is supported only up to version 2019.2; newer releases need Python 3.6 or later.
In collections
Topics
FAQ
- What is pudb?
- A full-screen, keyboard-driven console debugger for Python that shows source, stack, breakpoints and variables at once. PuDB brings the layout of a modern GUI debugger into the terminal. Source code with syntax highlighting, the call stack, breakpoints and variables are shown together and kept up to date while the program runs, so you can debug code where you write and test it.
- Is pudb free to use? What license does it have?
- pudb is open source under the Other license. Check the license terms before using it in commercial products.
- Is pudb still maintained?
- Actively maintained. The last commit to pudb was on Nov 1, 2026.
- What can I use pudb for?
- Debugging Python scripts over SSH or in a plain terminal without a GUI Stepping through a failing pytest test interactively Inspecting the state of a crash after an unhandled exception Keyboard-focused debugging for developers who prefer staying in the terminal
- How do I install pudb?
- Find the package on the Python Package Index (PyPI) Get the development version with Git: git clone https://github.com/inducer/pudb.git
- Where can I get pudb?
- The source code and installation instructions are on GitHub: https://github.com/inducer/pudb
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Unofficial continuation of dnSpy, a debugger and editor for .NET and Unity assemblies that works without source code.
A Python debugging helper where ic() replaces print() by showing variable names, expressions, and their values with pretty-printed, syntax-highlighted output.
A Python debugging tool that records HTTP(S) requests made by a program, including server-side requests, and shows them in a local web UI.
A CLI that lets AI agents drive interactive terminal programs like REPLs, debuggers and TUI apps through a PTY.
A tiny JavaScript debugging utility that prints namespaced debug output in Node.js and web browsers, toggled via the DEBUG environment variable.