bpython
A fancy curses interface to the Python interactive interpreter
What it is and what it does
bpython is a drop-in replacement for the standard Python interactive interpreter, designed to add IDE-like conveniences without the overhead of a full development environment. It runs as a command-line tool that you invoke instead of `python` when you want an interactive session, and it wraps your input with syntax highlighting via Pygments, real-time autocompletion suggestions, inline parameter documentation for functions, and the ability to rewind and re-evaluate your session or edit it in your preferred text editor.
The package depends on curtsies for terminal UI rendering, greenlet for lightweight concurrency, and several smaller utilities for clipboard, configuration, and display width handling. It is most useful for quick exploration, testing snippets, or debugging without leaving the terminal—situations where you'd normally open a Python REPL but want better visibility into what you're typing and what functions expect.
Use it for:
- Testing code snippets and solutions interactively without creating temporary files.
- Debugging and exploring library APIs with real-time parameter hints and syntax highlighting.
- Rewinding and re-evaluating session history after making edits in your text editor.
- Quick prototyping and experimentation in a terminal-based environment with IDE-like features.
- Replacing the vanilla Python REPL for daily interactive development work.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
bpython is an enhanced Python interactive interpreter that replaces the standard REPL with syntax highlighting, autocompletion, parameter hints, and session editing features.
Yes. bpython is actively maintained, has no known security vulnerabilities, uses a permissive MIT license, and installs with low friction. It is a straightforward enhancement to the standard Python REPL that adds genuine productivity features (syntax highlighting, autocompletion, parameter hints) without requiring a heavy IDE. Install it if you spend time in the interactive interpreter and want better visibility into your code and function signatures.
Install
bpython on PyPI
pip
pip install bpythonuv
uv add bpythonpoetry
poetry add bpythonInstalling bpython
Before you install
Low install friction with a pure-Python wheel and seven runtime dependencies. Actively maintained with a recent release and steady commit activity.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions.
Quickstart
pip install bpython
bpython
Requires Python 3.9 or later.
Verify before relying
- Whether optional dependencies (jedi, watchdog, pyperclip) are needed for specific features beyond the core interpreter.
- Performance characteristics when working with large codebases or long-running sessions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — curtsies, cwcwidth, greenlet, pygments, pyxdg, requests, typing_extensions |
| Maintenance | actively maintained — 290 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 540,378/month — #6,104 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bpython-0.26-py3-none-any.whl
Tags
More Terminals packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
richRich renders styled text, tables, progress…
permissive · top 100 on PyPI
coloramaColorama makes ANSI escape sequences for…
permissive · top 100 on PyPI
wcwidthMeasures the displayed width of Unicode strings…
permissive · top 1,000 on PyPI
ptyprocessRun a subprocess in a pseudo terminal (pty) and…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
ptpythonptpython is an advanced interactive Python…
permissive · top 5,000 on PyPI
ipython-pygments-lexersProvides Pygments syntax highlighters for…
permissive · top 1,000 on PyPI
flask-shell-ipythonReplaces Flask's default shell command with an…
unclear · top 5,000 on PyPI
redbaronRedBaron is a Python library for…
copyleft · top 15,000 on PyPI
fancycompleterAdds colorful TAB completion to the Python…
permissive · top 5,000 on PyPI
jediJedi provides static analysis, autocompletion,…
permissive · top 1,000 on PyPI
prompt_toolkitprompt_toolkit is a Python library for building…
permissive · top 1,000 on PyPI
pyvimA Vi/Vim-like text editor implemented entirely…
permissive · top 15,000 on PyPI
ropeRope is a Python refactoring library that…
copyleft · top 5,000 on PyPI
litecliA command-line client for SQLite databases with…
permissive · top 15,000 on PyPI