cli-ui
Build Nice User Interfaces In The Terminal
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later (supports up to 3.13)
- 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 · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license allows use in most projects, commercial or open-source, with minimal restrictions beyond retaining license and copyright notice.
last release 2025-03-29 (503 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 233,269 downloads/mo, #9,040 on PyPI
Alternatives
Verify before relying
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"])- 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.
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 on it.
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
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.
Requires Python 3.9 or later (supports up to 3.13)
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"])
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 packagescoloramatabulateunidecode |
| 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 |
| Classifiers | 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 |
Evidence: cli_ui-0.19.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “progress indication terminal”
- cli-uiProvides terminal UI components for colored output, progress…
- terminaltexteffectsRenders animated visual effects for text displayed in the terminal,…
- progressbar33Displays text-based progress bars in the console, with customizable…
Give your agent the search over MCP, or paste the wish link into any chat.
More Terminals packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.
Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.
Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…
Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.
Install it if your application formats text for terminals and handles non-ASCII characters.
Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.
However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
See also ascii-colors · simple-term-menu · simple-colors · clint · crayons · pastel · termcolor · colorclass · pystyle · inquirer