Command-Line & Dev Tools

click

The reason typing --help after a command actually gives you a clean, useful answer.

Install it: pip install click

What does it do?

Click is the toolkit that turns a Python script into a proper command-line program, the kind with options like —verbose, —output, and automatic help text. Think of it as the difference between a homemade lemonade stand with a scrawled cardboard sign and a real storefront with a menu board: both sell the same thing, but one tells you clearly what your choices are. Developers write a function, decorate it with Click, and instantly get argument parsing, error messages, and documentation for free. It also handles fiddly details, like confirming “are you sure?” before a destructive action.

See it in action

This is a small command-line program that asks for your name and then prints a greeting to you a chosen number of times.

import 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):
    for _ in range(count):
        click.echo(f"Hello, {name}!")

if __name__ == "__main__":
    hello()

Why would a non-developer care?

You’ve never opened Click yourself, but you’ve used its handiwork. The polished command-line tools inside Flask, Black, and countless developer utilities all lean on it to feel consistent and predictable instead of janky and hand-rolled.

Real-world examples

Click was created by Armin Ronacher, the same developer behind the Flask web framework, and it now underpins the command-line interfaces of tools like Black and pip plugins across the Python ecosystem. Without a library like this, every command-line tool would parse arguments its own inconsistent way, meaning —help might do something different in every single program you touch.

Who uses it

Python developers building command-line tools that other developers or technical users will run repeatedly.

How it compares to alternatives

It’s the long-standing rival to Python’s built-in argparse, favored for being far less boilerplate-heavy, and it now shares the CLI space with the newer, type-hint-driven Typer, which is actually built on top of Click.

Fun fact

Click’s name is a backronym for Command Line Interface Creation Kit.

New to Python and want to actually try libraries like this yourself?

Find a beginner-friendly course

Related libraries