GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Awesome Python
  • Submit a project
  • Sponsorship

This view

  • Original page
  • New address

GeezerVison is showing awesome-python.com — Python CLI Development Libraries - Awesome Python

  • iPulse AI

    Open Agentic Investment Research Platform. Inspect deep multi-agent market forecasts and stock picks.

  • PyUiBuilder

    Build your Python GUIs like Canva using drag and drop. Export clean, editable Python code.

Listed in editorial order, grouped by use case. Click a column header to re-sort the whole list.

Press / to search. Tags open their category. Click a row for details.

Search and filter

Results

Row number Tags

Argument Parsing 4 projects

1 argparse CLI Development Stdlib 78,173 2026-11-12 Argument Parsing CLI Development CLI & GUI Stdlib →
(Python standard library) Command-line option and argument parsing.
python/docs.python.org/3/library/argparse.html /78,173 stars /2026-11-12
2 click CLI Development 1,050,240,860 17,820 2026-11-06 Argument Parsing CLI Development CLI & GUI →
A package for creating beautiful command-line interfaces in a composable way.
pallets/github.com/pallets/click /17,820 stars /2026-11-06
3 typer CLI Development 289,218,653 20,343 2026-11-11 Argument Parsing CLI Development CLI & GUI →
Modern CLI framework that uses Python type hints. Built on Click.
fastapi/github.com/fastapi/typer /20,343 stars /2026-11-11
4 cyclopts CLI Development 74,757,906 1,296 2026-11-11 Argument Parsing CLI Development CLI & GUI →
Build CLIs from type-hinted functions, with docstring-based help.
BrianPugh/github.com/BrianPugh/cyclopts /1,296 stars /2026-11-11

Terminal Rendering 5 projects

5 rich CLI Development 543,380,023 57,807 2026-11-07 Terminal Rendering CLI Development CLI & GUI →
Python library for rich text and beautiful formatting in the terminal. Also provides a great RichHandler log handler.
Textualize/github.com/Textualize/rich /57,807 stars /2026-11-07
6 tqdm CLI Development 473,036,436 31,383 2026-09-11 Terminal Rendering CLI Development CLI & GUI →
Fast, extensible progress bar for loops and CLI.
tqdm/github.com/tqdm/tqdm /31,383 stars /2026-09-11
7 colorama CLI Development 281,820,579 3,797 2026-05-13 Terminal Rendering CLI Development CLI & GUI →
Cross-platform colored terminal text.
tartley/github.com/tartley/colorama /3,797 stars /2026-05-13
8 pyfiglet CLI Development 6,768,693 1,592 2026-08-02 Terminal Rendering CLI Development CLI & GUI →
An implementation of figlet written in Python.
pwaller/github.com/pwaller/pyfiglet /1,592 stars /2026-08-02
9 alive-progress CLI Development 2,960,617 6,327 2025-10-10 Terminal Rendering CLI Development CLI & GUI →
A new kind of progress bar, with real-time throughput, ETA and very cool animations.
rsalmei/github.com/rsalmei/alive-progress /6,327 stars /2025-10-10

TUI Frameworks 4 projects

10 textual CLI Development 58,169,623 37,638 2026-10-09 TUI Frameworks CLI Development CLI & GUI →
A framework for building interactive user interfaces that run in the terminal and the browser.
Textualize/github.com/Textualize/textual /37,638 stars /2026-10-09
11 prompt_toolkit CLI Development 217,171,309 10,612 2026-10-20 TUI Frameworks CLI Development CLI & GUI →
A library for building powerful interactive command lines.
prompt-toolkit/github.com/prompt-toolkit/python-prompt-toolkit /10,612 stars /2026-10-20
12 urwid CLI Development 5,739,863 3,027 2026-11-11 TUI Frameworks CLI Development CLI & GUI →
A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc.
urwid/github.com/urwid/urwid /3,027 stars /2026-11-11
13 asciimatics CLI Development 87,567 4,309 2026-07-04 TUI Frameworks CLI Development CLI & GUI →
A package to create full-screen text UIs (from interactive forms to ASCII animations).
peterbrittain/github.com/peterbrittain/asciimatics /4,309 stars /2026-07-04

No projects match your search.

Try a broader term, or .

CLI Development guide

argparse is in the standard library. Python's docs call it the recommended choice when you have no more specific needs, since it gives you the most out of the box for the least code. It writes the help and usage messages and reports invalid arguments for you. For commands written as decorated functions, the same docs point to Click, and for a CLI that works with static type checking, to Typer.

Click builds a CLI from commands declared with decorators. You can nest them to any depth, and Click can load subcommands lazily at runtime. It also reads option values from environment variables and comes with helpers for ANSI colors, terminal size, and launching editors.

Typer builds a CLI from your function signatures: you declare each argument and option once, as a type-hinted function parameter. Write those hints with Annotated, which its tutorial recommends wherever possible. Its docs say you get the best results by pairing it with Rich: Typer structures the commands and options, and Rich displays the output.

cyclopts also builds a CLI from type-hinted functions, but reads the help text from your docstrings. Its docs call that the preferred way to document a command, and reach for Annotated with Parameter only when you need more control. It follows Python's own argument binding rules, so a parameter can be passed by position or as a keyword. It has its own parser, with no Click underneath. Register commands with @app.command, and the function to run when no command matches with @app.default.

tqdm adds a progress bar to any loop: wrap the iterable in tqdm(). Import it from tqdm.auto, which picks the console bar or the Jupyter widget for you. alive-progress wraps the loop in an alive_bar context manager instead, with a spinner that speeds up and slows down with your throughput.

Rich writes colored text, tables, Markdown, and syntax-highlighted code to the terminal. Start with its drop-in print, then create one Console at module level for the rest of your app. For colored logs, send the logging module's output through RichHandler.

colorama makes ANSI escape codes work on Windows and does nothing on other platforms. If that's all you need, call just_fix_windows_console().

pyfiglet is a full port of FIGlet into pure Python: it renders text in ASCII-art fonts, as in pyfiglet.figlet_format("text", font="slant").

Textual apps run in the terminal, and the textual serve command from textual-dev serves them in a browser. Build one by subclassing App, and style its widgets with CSS.

prompt_toolkit is for interactive input. It can replace GNU readline or build full-screen apps. For a REPL, use a PromptSession, which keeps the history for the whole session.

Urwid is a console widget construction set rather than a finished UI library. It runs on your choice of event loop: asyncio, or another one you already use. It's licensed under the LGPL, while Textual and asciimatics use permissive licenses.

asciimatics does full-screen text UIs, from interactive forms to ASCII animations: create a Screen, build a Scene from Effect objects, and let the Screen play it.

Ship your CLI as an installable package with a [project.scripts] entry point, not a file users run with python. Click recommends it, and shell completion in Click and Typer works through that entry point. Test your commands in-process: Click and Typer both provide a CliRunner, and Textual's run_test() drives your app as if you were using the keyboard and mouse.

Contribute

Know a project that belongs here?

Tell us what it does and why it stands out.

Submit a project Star the repository
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.