NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3467 most downloaded on PyPI
Python REPL build on top of prompt_toolkit
Last release 10 months ago
20 Nov 2025
Release timing varies
gaps range from 2 weeks to 1.2 years
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
79 releases · first in 2014
Use ANSI colors (instead of RGB colors) for the default code theme. This improves the chances of having a better contrast with the background color, b
Fixes:
Add patch_stdout_raw parameter to embed() .
Fixes:
patch_stdout_raw parameter to embed().One column per quarter.
Show exception cause/context when printing chained exceptions.
New features:
Breaking changes:
Further improve performance of dictionary completions.
Fixes:
Custom 'exit' function to return from REPL that
New features:
sys.stdin when exit is called (important for embed()).Fixes:
Limit number of completions to 5k (for performance).
Fixes:
Handle GeneratorExit exception when leaving the paginator.
Fixes:
GeneratorExit exception when leaving the paginator.Fix handling of 'config file does not exist' when embedding ptpython.
Fixes:
Fix IPython DeprecationWarning .
Fixes:
run_config().DeprecationWarning.--asyncio is required to activate the asyncio-REPL. This will ensure that an event loop is created at the start in which we can run top-level await statements.get_running_loop() instead of get_event_loop().SystemExit and control-c in the async REPL.Don't print exception messages twice for unhandled exceptions.
Fixes:
Breaking changes:
Improve rendering performance when there are many completions.
New features:
Make ptipython respect more config changes. (See: https://github.com/prompt-toolkit/ptpython/pull/110 )
New features:
DictionaryCompleter for slow mappings.Fixes:
super() in PythonInputFilter. This will prevent potentially breakage
with an upcoming prompt_toolkit change.
(See: https://github.com/prompt-toolkit/python-prompt-toolkit/pull/1690 )py.typed to the package_data.For DictionaryCompleter: show parentheses after methods.
New features:
DictionaryCompleter: show parentheses after methods.Fixes:
DictionaryCompleter.black is installed that is not
compatible.Fix handling of SystemExit (fixes "ValueError: I/O operation on closed file").
Fixes:
SystemExit (fixes "ValueError: I/O operation on closed
file").await in assignment expressions or for-loops.Made "black" an optional dependency.
Fixes:
Fix leaking file descriptors due to not closing the asyncio event loop after reading input in a thread.
Fixes:
(Commit 7f619e was missing in previous release.)
(Commit 7f619e was missing in previous release.)
Fixes:
When pressing control-w, only delete characters until a punctuation.
New features:
Fixes:
AttributeError during retrieval of signatures with type annotations.Display of signature and completion drop down together.
New features:
DictionaryCompleter is enabled, also retrieve signatures when Jedi
fails, using the same logic.Fixes:
repr() is called.exc_info from eval to exec call.KeyboardInterrupt in REPL during evaluation of __repr__.Added 'print all' option to pager.
New features:
Fixes:
Expose a get_ptpython function in the global namespace, to get programmatic access to the REPL.
New features:
get_ptpython function in the global namespace, to get programmatic
access to the REPL.embed() at the top level of the package. Make it possible to do
from ptpython import embed.Fixes:
__pt_repr__.SystemExit.Add support for top-level await.
New features:
Add support for top-level await.
Refactoring of event loop usage:
The ptpython input UI will now run in a separate thread. This makes it possible to properly embed ptpython in an asyncio application, without having to deal with nested event loops (which asyncio does not support).
The "eval" part doesn't anymore take place within a ptpython coroutine, so
it can spawn its own loop if needed. This also fixes asyncio.run() usage
in the REPL, which was broken before.
Added syntax highlighting and autocompletion for !-style system commands.
Fixes:
Do dictionary completion on Sequence and Mapping objects (from collections.abc). Note that dictionary completion is still turned off by default.
Fixes:
Allow replacing PythonInput.completer at runtime (useful for tools build on top of ptpython).
New features:
PythonInput.completer at runtime (useful for tools build on
top of ptpython).Stop using deprecated Jedi functions.
New features:
PTPYTHON_CONFIG_HOME for explicitly setting the config directory.Fixes:
Option to show/hide private attributes during a completion
New features:
insert_blank_line_after_input option similar to
insert_blank_line_after_output.Fixes:
__pt_repr__.(Experimental) support for __pt_repr__ methods. If objects implement this method, this will be used to print the result in the REPL instead of the nor
New features:
__pt_repr__ methods. If objects implement this
method, this will be used to print the result in the REPL instead of the
normal __repr__.Handle bug in dictionary completion when numeric keys are used.
Fixes:
Allow leading whitespace before single line expressions.
New features:
vi_start_in_navigation_mode and vi_keep_last_used_mode options.Fixes:
Sort attribute names for DictionaryCompleter and move underscored attributes to the end.
Fixes:
DictionaryCompleter and move underscored
attributes to the end.get_compiler_flags.run_async code.Improved custom dictionary completion:
New features:
Fix backwards-compatibility of the run_config function. (used by django-extensions).
run_config function. (used by
django-extensions).Upgrade to prompt_toolkit 3.0. Requires at least Python 3.6.
Upgrade to prompt_toolkit 3.0. Requires at least Python 3.6.
New features:
Nothing published for this version
Added dictionary completer (off by default).
New features:
Fixes:
Fixed config: setting of color depth.
Allow changing the min/max brightness.
Don't crash the history browser when there was no history.
Fixes:
Upgrade to prompt_toolkit 2.0.x.
Upgrade to prompt_toolkit 2.0.x.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Support for editing in Vi block mode. (Only enabled for prompt_toolkit>=1.0.8.)
New features:
Fixes:
Fix in completer. Don't hang when pasting a long string with many backslashes.
Fixes:
pt[i]pythonX and pt[i]pythonX.X commands.Bugfix in ptipython: reset input buffer before every read in run().
Bugfix in ptipython: reset input buffer before every read in run().
Upgrade to prompt_toolkit 1.0.0
Upgrade to prompt_toolkit 1.0.0
Improvements:
Fixed bug when PYTHONSTARTUP was not found.
Fixes:
Upgrade to prompt_toolkit 0.60
Upgrade to prompt_toolkit 0.60
Upgrade to prompt_toolkit 0.59
Upgrade to prompt_toolkit 0.59
Upgrade to prompt_toolkit 0.58 New features: - Improved mouse support
Upgrade to prompt_toolkit 0.58
New features:
Upgrade to prompt_toolkit 0.57
Upgrade to prompt_toolkit 0.57
Upgrade to prompt_toolkit 0.56
Upgrade to prompt_toolkit 0.56
Consider input multiline when there's a colon at the end of the line.
Upgrade to prompt_toolkit 0.54
Fixes:
Upgrade to prompt_toolkit 0.52
Upgrade to prompt_toolkit 0.52
Optionally disabling of line wraps.
Upgrade to prompt_toolkit 0.51
New features:
Correctly accept file parameter in the print function of asyncssh_repl.ReplSSHServerSession.
Upgrade to prompt_toolkit 0.50
Fixes:
New features:
Correctly add current directory to sys.path.
Upgrade to prompt_toolkit 0.46
Fixes:
Upgrade to prompt_toolkit 0.45
Upgrade to prompt_toolkit 0.45
Your coding agent can read these notes before it upgrades. Set up the MCP server →