ascii-colors
A Python library for rich terminal output with advanced logging features.
What it is and what it does
ASCIIColors is a single-package replacement for managing multiple terminal UI libraries. It combines colored text output, Python's standard logging system with JSON and file-rotation support, progress bars, interactive prompts (text, password, select, checkbox), and rich UI components like panels, tables, and syntax highlighting—all without requiring external UI dependencies beyond wcwidth for emoji support.
The library offers three complementary APIs: direct color methods for immediate feedback, a drop-in logging replacement compatible with Python's standard logging module, and a Rich-compatible component layer for building terminal interfaces. It targets developers building CLI tools, monitoring dashboards, and interactive applications who want styled output and structured logging without juggling separate libraries.
Use it for:
- Build CLI tools with colored status messages, warnings, and errors using direct color methods.
- Set up production logging with JSON output, per-logger file routing, and rotation in a single configuration.
- Display progress bars with custom styles and thread-safe updates during long-running operations.
- Create interactive terminal menus and prompts (text input, confirmations, selections) for user-facing CLI applications.
- Render structured data as tables or hierarchical trees with syntax highlighting for code snippets.
- Debug applications with enhanced tracebacks that include local variable context and multicolor formatting.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Unified terminal UI library providing colored output, structured logging, progress bars, interactive prompts, and rich components (panels, tables, trees) for CLI applications.
Yes. Low install friction, active maintenance, no known vulnerabilities, and a permissive license make it a solid choice. The unified API across colors, logging, and UI components reduces dependency sprawl for CLI projects. Best for developers who want a single package for terminal styling and structured logging; less suitable if you need only basic colored output or prefer composing best-of-breed libraries.
Install
ascii-colors on PyPI
pip
pip install ascii-colorsuv
uv add ascii-colorspoetry
poetry add ascii-colorsInstalling ascii-colors
Before you install
Low friction: pure Python wheel with only wcwidth as a runtime dependency. Active maintenance with a release 30 days ago and recent commits.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install ascii_colors
from ascii_colors import ASCIIColors
ASCIIColors.green("Success!")
ASCIIColors.red("Error occurred")
ASCIIColors.panel("Content", title="Title", border_style="blue")
Requires Python 3.8 or later.
Verify before relying
- Whether wcwidth is truly optional or required for accurate progress bar rendering in all terminal environments.
- Performance characteristics when rendering large tables or trees in real-time.
- Compatibility with Windows terminals and whether ANSI escape sequences work reliably on all platforms.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — wcwidth |
| Maintenance | actively maintained — 30 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 298,344/month — #7,874 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ascii_colors-0.11.26-py3-none-any.whl
Keywords: ansi, color, colors, style, terminal, console, cli, rich text, logging, logger, log, structured logging, log formatting, json logging, file logging, log rotation, python logging, context logging, progress bar, progress, tqdm, indicator, menu, cli menu, interactive menu, terminal menu, navigation, prompt, confirm, input, user interaction, animation, spinner, utility
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
cli-uiProvides terminal UI components for colored…
permissive · top 15,000 on PyPI
clintClint provides command-line interface utilities…
permissive · top 15,000 on PyPI
simple-colorsAdds colored and styled text output to terminal…
unclear · top 15,000 on PyPI
pastelPastel adds colored text output to terminal…
permissive · top 5,000 on PyPI
termcolorAdds ANSI color and text formatting (bold,…
permissive · top 1,000 on PyPI
crayonsCrayons provides colored text output for…
permissive · top 15,000 on PyPI
ansimarkupAnsimarkup converts XML-like markup tags into…
permissive · top 15,000 on PyPI
richRich renders styled text, tables, progress…
permissive · top 100 on PyPI
rich-argparseFormats argparse and optparse help output with…
permissive · top 1,000 on PyPI
rich-clickRenders Click command-line interfaces with rich…
permissive · top 1,000 on PyPI