rich-argparse
Rich help formatters for argparse and optparse
Decision gist · record as of 2026-08-14
Yes. The package is stable (Production/Stable status), actively maintained, has zero known vulnerabilities, and solves a real UX problem—making CLI help text more readable—with minimal install friction and a permissive MIT license. It's a low-risk enhancement for any argparse-based project.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Low friction: pure Python wheel with a single runtime dependency on rich.
- Active maintenance with recent releases and no known vulnerabilities.
License · maintenance · safety
MIT (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions—suitable for commercial and open-source projects alike.
last release 2026-05-01 (105 days) · last repo commit 2026-07-10 · 207 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 24,893,909 downloads/mo, #910 on PyPI
Alternatives
Verify before relying
import argparse
from rich_argparse import RichHelpFormatter
parser = argparse.ArgumentParser(
description="My program",
formatter_class=RichHelpFormatter
)
parser.add_argument("--name", help="Your name")
args = parser.parse_args()- Whether optparse support is production-ready or remains experimental as noted in the documentation.
- Performance impact when rendering help with complex rich renderables (Markdown, Table) in large CLIs.
What it is and what it does
rich-argparse is a formatter plugin for Python's argparse and optparse modules that replaces their default help text rendering with styled, colored output powered by the rich library. It works by passing a RichHelpFormatter class to your argument parser—no changes to argument definitions or parsing logic needed. The package provides drop-in replacements for all standard argparse formatters (HelpFormatter, RawDescriptionHelpFormatter, etc.) and adds support for rich renderables like Markdown tables and custom styling in descriptions, epilogs, and version strings.
The package is designed for developers building command-line tools who want professional-looking help output without rewriting their CLI infrastructure. It handles color customization through a styles dictionary, pattern-based text highlighting (e.g., highlighting `--options` or backtick-quoted text), and console markup in descriptions. It supports modern Python versions (3.9 through 3.14) and requires only rich as a dependency, making it lightweight to integrate into existing projects.
Use it for
- Improve help text readability in CLI tools by adding colors and formatting without rewriting argparse code.
- Display rich renderables like Markdown tables or formatted lists in argparse descriptions and epilogs.
- Customize help output styling (colors, fonts, highlighting patterns) to match your CLI's branding or theme.
- Add visual hierarchy to complex command-line interfaces with multiple subparsers and argument groups.
- Migrate optparse-based CLIs to styled help output while maintaining backward compatibility.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is stable (Production/Stable status), actively maintained, has zero known vulnerabilities, and solves a real UX problem—making CLI help text more readable—with minimal install friction and a permissive MIT license. It's a low-risk enhancement for any argparse-based project.
Install
rich-argparse on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency on rich. Active maintenance with recent releases and no known vulnerabilities.
Requires Python 3.9 or later.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for commercial and open-source projects alike.
Quickstart
import argparse
from rich_argparse import RichHelpFormatter
parser = argparse.ArgumentParser(
description="My program",
formatter_class=RichHelpFormatter
)
parser.add_argument("--name", help="Your name")
args = parser.parse_args()
Verify before relying
- Whether optparse support is production-ready or remains experimental as noted in the documentation.
- Performance impact when rendering help with complex rich renderables (Markdown, Table) in large CLIs.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagerich |
| Maintenance | Actively maintained 105 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 24,893,909 / month, #910 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Software Development :: User Interfaces |
Evidence: rich_argparse-1.8.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 › “argparse help formatter”
- rich-argparseFormats argparse and optparse help output with rich styling, colors,…
- sphinx-argparseSphinx extension that automatically generates documentation for…
- pydantic-argparseGenerates command-line argument parsers from Pydantic models,…
Give your agent the search over MCP, or paste the wish link into any chat.
More User Interfaces 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.
Formats and parses numbers, file sizes, timespans, and other values into human-readable text; provides terminal interaction utilities including ANSI text styling and user prompts.
Adds colored output to Python's standard logging module using ANSI escape sequences, with automatic fallback support for Windows terminals.
However, it is abandoned and receives no maintenance, so it will not adapt to future Python changes or platform updates.
progressbar2 renders text-based progress bars in the terminal, handling custom widgets, concurrent bars, unknown-length progress, and clean output around logs and prints.
InquirerPy provides interactive command-line prompts (text input, confirmations, selections, checkboxes, fuzzy search) for building conversational CLI interfaces in Python.
However, the project is dormant (last release 2022-06-27), so adopt it only if you need its specific feature set (especially the fuzzy prompt) and can tolerate no…
Reads single characters and keystrokes from stdin, handling both ASCII characters and multi-character keys like arrows, function keys, and modifier combinations across Windows, Linux, and Unix systems.
Install it if you need to handle raw keyboard input in a CLI or terminal UI.
See also rich · django-rich · ascii-colors · pydantic-argparse · simple-colors · docopt-ng · pastel · sty · argcomplete · docopt