Skip to main content

Format click help output nicely with rich

Project description

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 shim 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 customisation required.

Features

  • 🌈 Rich command-line formatting of click help and error messages
  • 💫 Nice styles be default, usage is simply import rich_click as click
  • 💻 CLI tool to run on other people's tools (prefix the command with rich-click)
  • 📦 Export help text as HTML or SVG
  • 🎁 Group commands and options into named panels
  • ❌ Well formatted error messages
  • 🔢 Easily give custom sort order for options and commands
  • 🎨 Extensive customisation of styling and behaviour possible

Installation

pip install rich-click

Read the docs for all supported installation methods.

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

examples/03_groups_sorting.py

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 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.

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.

Project details


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.8.0.dev0.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

rich_click-1.8.0.dev0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file rich-click-1.8.0.dev0.tar.gz.

File metadata

  • Download URL: rich-click-1.8.0.dev0.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for rich-click-1.8.0.dev0.tar.gz
Algorithm Hash digest
SHA256 96240c5a89cb5c74ddc5f7578edf2d187a8ee2d572718b2724dd33dcec94c685
MD5 bdcc3329549e4f82a321d7349d1fac6d
BLAKE2b-256 735725893d489645673c33f2932dd94d9acd78f146246757031e4f1420a8418b

See more details on using hashes here.

File details

Details for the file rich_click-1.8.0.dev0-py3-none-any.whl.

File metadata

File hashes

Hashes for rich_click-1.8.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 28d70e7d9fe6f76b73ccf20e56ebe3bd1821a1951038dccfe90570d6fa7c02ce
MD5 ec3c701e530963e98d92cd3d230e636e
BLAKE2b-256 566c8d171586efbbdf4047fdc274e2302c359849e67087c29c4889fb1e5c2606

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page