Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rich_click-1.9.9.tar.gz (75.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rich_click-1.9.9-py3-none-any.whl (71.9 kB view details)

Uploaded Python 3

File details

Details for the file rich_click-1.9.9.tar.gz.

File metadata

  • Download URL: rich_click-1.9.9.tar.gz
  • Upload date:
  • Size: 75.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rich_click-1.9.9.tar.gz
Algorithm Hash digest
SHA256 324cba7513cd4187ee92b2eef21f071714e45be062458c8b157bd7e0c81103e3
MD5 6c58d089be071f41df3bed2aad908272
BLAKE2b-256 963e5688fdd83aea416de336582a274f2bc8236b5c261b04c11e17bc262786ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for rich_click-1.9.9.tar.gz:

Publisher: deploy-pypi.yml on ewels/rich-click

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rich_click-1.9.9-py3-none-any.whl.

File metadata

  • Download URL: rich_click-1.9.9-py3-none-any.whl
  • Upload date:
  • Size: 71.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rich_click-1.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 365e7a9d0adb42e41ea832a0a12e02c44c079a26536dee688125eb9814f97274
MD5 a9621af3c9c1c57096ab0e1602e7cbf3
BLAKE2b-256 b551b2b91aec091e86bc961e5164f00207d89f133cc82b5ddad541d2132ea819

See more details on using hashes here.

Provenance

The following attestation bundles were made for rich_click-1.9.9-py3-none-any.whl:

Publisher: deploy-pypi.yml on ewels/rich-click

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.9.9 This release

2 files

1.9.8

2 files

1.9.7

2 files

1.9.6

2 files

1.9.5

2 files

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.9

2 files

1.8.8

2 files

1.8.7

2 files

1.8.6

2 files

1.8.5

2 files

1.8.4

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.2

2 files

1.5.1

2 files

1.5

2 files

1.4

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page