Skip to main content

🌊seali

A does-one-thing-well library for building CLIs.
Designed to be trivially easy to use.

  • Zero dependencies;
  • Subcommands;
  • Fish completions;
  • Elegant --help messages (with line-breaks, tab-stops, and ANSI escape codes);
  • Tiny day-to-day API: seali.{command, group, Doc, Style}.

This exists because I wanted ✨pretty help text✨ beyond what any other CLI library supports.

Installation

pip install seali

Example

import seali

@seali.command
def my_program(pos: str, /, *, someflag: bool = False):
    ...

if __name__ == "__main__":
    my_program()
python this_file.py foobar --someflag

Documentation

Available at https://docs.kidger.site/seali.

Alternatives

  • fire was the main inspiration for seali.
    I love their 'trivial to use' UX: just call the library on your function. Relative to fire, we aim to minimise their massive surface area (they also allow you to decorate classes, dictionaries, ..., have an interactive mode, a trace mode, ...), and fix some UX issues (e.g. -s short flags, help messages) for a simpler more opinionated library.

  • click is the 'standard' choice for Python CLIs.
    Honourary mention to other similar libraries that live in this niche, for example typer or rich-click.
    We aim to be (a) smaller/simpler and (b) offer a few nice UX features like fully customisable help messages.

  • argparse is in the Python stdlib.
    This is usually noted for being highly verbose. We aim to be much easier to use.

As a particular focus, we aim to offer best-in-class help messages, with support for reflowing, tabstops, and respecting ANSI escape codes.

Metadata

Release files for seali 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seali 0.4.0
File Size Uploaded
seali-0.4.0.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seali 0.4.0
File Interpreter ABI Platform
seali-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 47.6 kB

Release files / seali-0.4.0.tar.gz

Download URL seali-0.4.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0f55bf97b63fa510bfe9cb39e7a497dc75e1fc4cac8f1f05c6d66cab8f97df17
BLAKE2b-256 checksum
How to use checksums
e2a70a5112fc1787090aee188eaa7dd0353801bd8ae98897f6f09e3d56b633a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / seali-0.4.0-py3-none-any.whl

Download URL seali-0.4.0-py3-none-any.whl
Size 27.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85b4fbb6594cbff9c67844eb78b823fcb5790d016e834a67f3d5d73af9ed1d95
BLAKE2b-256 checksum
How to use checksums
ff2a65074a06b8ac838608e68dcdb60e5c55f7f9de75a34716fb5d8d2fefc84d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release 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