skillfed

beaupy

A library of elements for interactive TUIs in Python

beaupy v3.12.0 91.1K downloads/30d#13,544 on PyPI239
Permissive license MIT Active released

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 beaupy

uv

uv add beaupy

poetry

poetry add beaupy

Installing 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

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Terminals

Tags

interactive cli promptsterminal user interface elementscli select dropdownpython tui libraryconsole input validationstyled terminal promptscli menu selection
cli-uiinteractive-promptsterminal-styling

More Terminals packages