prompt-toolkit/ptpython

A better Python REPL

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 9 minutes ago
Added to GitGenius on September 12th, 2026
Created on September 29th, 2014
Open Issues & Pull Requests: 265 (+0)
GitHub issues: Enabled
Number of forks: 293
Total Stargazers: 5,451 (+0)
Total Subscribers: 62 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 39.3 hours
Mean response time: 109.3 days
90th percentile: 526.9 days
Tracked items: 14

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 17
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 847 days
Stale 30+ days: 16
Stale 90+ days: 15

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

ptpython is an advanced Python REPL that replaces the standard interactive shell with a more feature-rich environment.

The standard Python REPL lacks modern conveniences like syntax highlighting, multiline editing, and intelligent autocompletion. ptpython addresses this by layering a sophisticated interactive interface on top of Python's interpreter, providing features such as syntax highlighting, multiline editing with arrow key navigation, autocompletion, mouse support, configurable color schemes, Vi and Emacs key bindings, and support for double-width characters. It handles bracketed paste mode automatically when the terminal supports it, preserving indentation without requiring manual paste mode toggling.

Developers should choose ptpython if they spend significant time in the Python REPL and want a more productive interactive experience. It works across Linux, BSD, macOS, and Windows, and suits anyone from casual explorers to those building complex interactive workflows. The tool can be invoked as a standalone command or embedded directly into Python applications via the embed function, making it useful both as a replacement shell and as a component in larger systems. It also supports top-level await through an asyncio event loop option, which is valuable for testing async code interactively.

The project maintains active development with regular updates addressing compatibility and feature requests. Contributions flow steadily, indicating ongoing community engagement with the codebase. The maintainers respond to issues and pull requests, keeping the tool aligned with evolving Python versions and user needs. Documentation is kept current with examples and configuration guidance, supporting both new users and those customizing the tool for specific workflows.