skillfed

cli-ui

Build Nice User Interfaces In The Terminal

cli-ui v0.19.0 233.3K downloads/30d#9,040 on PyPI
Permissive license BSD-3-Clause AGING released

What it is and what it does

cli-ui is a Python library for building formatted terminal user interfaces. It wraps common output patterns—colored text, progress bars, enumerated lists, and interactive prompts—into a simple API, reducing boilerplate for CLI applications that need readable, user-friendly terminal output.

The package depends on colorama, tabulate, and unidecode for cross-platform color support, table formatting, and text normalization. It targets Python 3.9 and later. Use it when you need to display structured information, ask users for input, or show progress without writing terminal escape sequences by hand.

Use it for:

  • Display colored status messages and errors in a CLI tool without managing ANSI codes manually.
  • Prompt users to choose from a list of options or answer yes/no questions in an interactive script.
  • Show progress of a long-running operation with a counter and total, updating in place.
  • Enumerate items in a loop with automatic numbering and formatting for readability.
  • Format and display tabular data in the terminal with consistent styling.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides terminal UI components for colored output, progress indication, and interactive prompts—info messages, yes/no questions, choice selection, and enumeration display.

Yes, if you are building a CLI tool and want readable, formatted terminal output without managing escape codes. The low install friction and permissive license make it a practical choice. However, the aging maintenance status means you should be comfortable with minimal ongoing support; the package is stable for its narrow scope but unlikely to gain new features or rapid bug fixes.

Install

cli-ui on PyPI

pip

pip install cli-ui

uv

uv add cli-ui

poetry

poetry add cli-ui

Installing cli-ui

Before you install

Low install friction with three lightweight runtime dependencies. Maintenance status is aging—last release 503 days ago—so expect slower response to issues, though the package remains functional for its scope.

License in practice

BSD-3-Clause permissive license allows use in most projects, commercial or open-source, with minimal restrictions beyond retaining license and copyright notice.

Quickstart

pip install cli-ui

import cli_ui
cli_ui.info("This is", cli_ui.red, "red", cli_ui.reset)
selected = cli_ui.ask_choice("Choose a fruit", choices=["apple", "orange", "banana"])

Requires Python 3.9 or later (supports up to 3.13)

Verify before relying

  • Whether the package handles Windows terminal color output correctly across all colorama-supported versions.
  • Performance characteristics when rendering large tables or many progress updates in succession.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (<4.0,>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 3 — colorama, tabulate, unidecode
Maintenance aging — 503 days since the last release
First released
Downloads 233,269/month — #9,040 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: cli_ui-0.19.0-py3-none-any.whl

License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Tags

terminal ui componentscli colored outputinteractive terminal promptsprogress indication terminaluser input from command lineterminal formatting and colorscli info messages
cli-outputinteractive-prompts

More Terminals packages