beaupy
A library of elements for interactive TUIs in Python
What it is and what it does
BeauPy is a Python library for building interactive terminal user interfaces with styled prompts and menus. It wraps common CLI patterns—single-select, multi-select, yes/no confirmation, and free-text input with validation—and renders them with rich formatting and emoji support via dependencies on rich, python-yakh for cross-platform input handling, emoji, and questo.
The library is designed for developers building CLI tools that need user interaction beyond simple print/input. It handles terminal rendering, keyboard navigation, and input validation in a single call, abstracting away the complexity of raw terminal control. Supports Python 3.7.8 through 3.14 on Windows, Linux, and macOS.
Use it for:
- Build interactive CLI menus where users navigate and select from lists with arrow keys and styled cursors.
- Gather validated user input in terminal scripts—prompts with type conversion, custom validators, and optional input hiding.
- Create multi-choice selection dialogs for configuration wizards or batch operations in command-line tools.
- Add yes/no confirmation dialogs to CLI workflows to prevent accidental destructive actions.
- Display animated spinners during long-running CLI tasks to provide visual feedback to users.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
BeauPy provides interactive CLI elements—select, multi-select, confirm, and prompt—for building terminal user interfaces in Python, styled with rich formatting and emoji support.
Yes. BeauPy is actively maintained, has no known security vulnerabilities, low install friction, and a permissive MIT license. It solves a real problem—interactive terminal UI elements are tedious to build from scratch—and has a stable API (production/stable classifier). Install it if you're building CLI tools that need user interaction beyond basic input/output.
Install
beaupy on PyPI
pip
pip install beaupyuv
uv add beaupypoetry
poetry add beaupyInstalling beaupy
Before you install
Low friction: pure Python wheel with four runtime dependencies (emoji, python-yakh, questo, rich). Actively maintained with a release 85 days ago and last commit on 2026-08-14.
License in practice
MIT license (permissive): you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install beaupy
from beaupy import select, confirm
if confirm("Continue?"):
choice = select(["Option A", "Option B", "Option C"])
print(f"You chose: {choice}")
Verify before relying
- Whether the package works reliably with pdb debugging (known issue noted for versions 0.1.7+, status unclear for 3.12.0)
- Current state of Windows arrow-key support (issue noted for 3.0.0+, resolution status for 3.12.0 not explicit)
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0.0,>=3.7.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — emoji, python-yakh, questo, rich |
| Maintenance | actively maintained — 85 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 91,069/month — #13,544 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: beaupy-3.12.0-py3-none-any.whl
Keywords: cli, interactive, console, terminal, interface
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
blessingsBlessings provides a clean Python API for…
permissive · top 5,000 on PyPI
questoQuesto provides modular, extensible CLI prompt…
permissive · top 15,000 on PyPI
simple-colorsAdds colored and styled text output to terminal…
unclear · top 15,000 on PyPI
inquirerpyInquirerPy provides interactive command-line…
permissive · top 5,000 on PyPI
termcolorAdds ANSI color and text formatting (bold,…
permissive · top 1,000 on PyPI
ansicolorsEmbeds ANSI color and style codes into Python…
permissive · top 5,000 on PyPI
trogonTrogon auto-generates a terminal user interface…
permissive · top 15,000 on PyPI
pastelPastel adds colored text output to terminal…
permissive · top 5,000 on PyPI
inquirer3Builds interactive command-line prompts with…
permissive · top 15,000 on PyPI