rich-click 1.9.7


pip install rich-click

  Latest version

Released: Jan 31, 2026


Meta
Author: Phil Ewels
Maintainer: Phil Ewels, Daniel Reeves
Requires Python: >=3.8

Classifiers

Development Status
  • 3 - Alpha

Intended Audience
  • Developers

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 3 :: Only
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12

rich-click logo

Richly rendered command line interfaces in click.

PyPI Test Coverage badge Lint code badge


Documentation  ยท  Source Code  ยท  Changelog


rich-click is a wrapper around Click that renders help output nicely using Rich.

  • Click is a "Python package for creating beautiful command line interfaces".
  • Rich is a "Python library for rich text and beautiful formatting in the terminal".

The intention of rich-click is to provide attractive help output from Click, formatted with Rich, with minimal customization required.

Features

  • ๐ŸŒˆ Rich command-line formatting of click help and error messages
  • ๐Ÿ˜Œ Same API as Click: usage is simply import rich_click as click
  • ๐ŸŽจ Over 100 themes that can be set by developers and end-users (export RICH_CLICK_THEME=...)
  • ๐Ÿ’ป CLI tool to run on other people's Click and Typer CLIs (prefix the command with rich-click)
  • ๐Ÿ“ฆ Export help text as HTML or SVG
  • ๐ŸŽ Group commands and options into named panels
  • โŒ Well formatted error messages
  • ๐Ÿ’ซ Extensive customization
  • ๐Ÿค– IDE autocomplete of Click decorators for smooth developer experience

Installation

pip install rich-click

Examples

Simple Example

To use rich-click in your code, replace import click with import rich_click as click in your existing click CLI:

import rich_click as click

@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name", help="The person to greet.")
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for _ in range(count):
        click.echo(f"Hello, {name}!")

if __name__ == '__main__':
    hello()

python examples/11_hello.py --help

Screenshot from examples/11_hello.py

More complex example

rich-click has a ton of customization options that let you compose help text however you'd like.

Below is a more complex example of what rich-click is capable of, utilizing themes and panels:

python examples/03_groups_sorting.py --help

Screenshot from examples/03_groups_sorting.py

Usage

This is a quick overview of how to use rich-click. Read the docs for more information.

There are a couple of ways to begin using rich-click:

Import rich_click as click

Switch out your normal click import with rich_click, using the same namespace:

import rich_click as click

That's it! โœจ Then continue to use Click as you would normally.

See examples/01_simple.py for an example.

Declarative

If you prefer, you can use RichGroup or RichCommand with the cls argument in your click usage instead. This means that you can continue to use the unmodified click package in parallel.

import click
from rich_click import RichCommand

@click.command(cls=RichCommand)
def main():
    """My amazing tool does all the things."""

See examples/02_declarative.py for an example.

rich-click CLI tool

rich-click comes with a CLI tool that allows you to format the Click help output from any package that uses Click.

To use, prefix rich-click to your normal command. For example, to get richified Click help text from a package called awesometool, you could run:

$ rich-click awesometool --help

Usage: awesometool [OPTIONS]
..more richified output below..

License

This project is licensed under the MIT license.

1.9.7 Jan 31, 2026
1.9.6 Jan 22, 2026
1.9.5 Dec 21, 2025
1.9.5.dev0 Dec 21, 2025
1.9.4 Oct 25, 2025
1.9.3 Oct 09, 2025
1.9.3.dev0 Oct 09, 2025
1.9.2 Oct 04, 2025
1.9.2.dev0 Oct 04, 2025
1.9.1 Sep 20, 2025
1.9.0 Sep 16, 2025
1.9.0.dev6 Sep 11, 2025
1.9.0.dev5 Sep 07, 2025
1.9.0.dev4 Sep 06, 2025
1.9.0.dev3 Sep 06, 2025
1.9.0.dev2 Sep 01, 2025
1.9.0.dev1 Aug 20, 2025
1.9.0.dev0 Aug 14, 2025
1.8.9 May 19, 2025
1.8.8 Mar 09, 2025
1.8.7 Mar 09, 2025
1.8.7.dev0 Feb 26, 2025
1.8.6 Feb 20, 2025
1.8.5 Dec 01, 2024
1.8.4 Nov 13, 2024
1.8.3 Jun 10, 2024
1.8.2 May 14, 2024
1.8.1 May 07, 2024
1.8.0 Apr 30, 2024
1.8.0.dev7 Apr 24, 2024
1.8.0.dev6 Apr 14, 2024
1.8.0.dev5 Apr 13, 2024
1.8.0.dev4 Apr 11, 2024
1.8.0.dev3 Apr 11, 2024
1.8.0.dev2 Apr 10, 2024
1.8.0.dev1 Apr 09, 2024
1.8.0.dev0 Apr 09, 2024
1.7.4 Mar 12, 2024
1.7.3 Jan 05, 2024
1.7.2 Dec 02, 2023
1.7.1 Nov 01, 2023
1.7.0 Oct 11, 2023
1.7.0.dev1 Oct 07, 2023
1.7.0.dev0 Oct 07, 2023
1.6.1 Jan 19, 2023
1.6.0 Dec 05, 2022
1.5.2 Aug 01, 2022
1.5.1 Jun 22, 2022
1.5 Jun 21, 2022
1.4 May 17, 2022
1.3.2 May 16, 2022
1.3.1 May 14, 2022
1.3.0 Mar 28, 2022
1.2.1 Mar 02, 2022
1.2.0 Feb 28, 2022
1.1.1 Feb 28, 2022
1.1.0 Feb 28, 2022
1.0.0 Feb 18, 2022
0.3.0 Feb 13, 2022
0.2.0 Feb 10, 2022
0.1.2 Feb 10, 2022
0.1.1 Feb 10, 2022
0.1.0 Feb 09, 2022

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras:
Dependencies:
click (>=8)
colorama
rich (>=12)
typing-extensions (>=4)