Skip to main content

cli-fw

A compact dataclass-driven command-line framework extracted from the Pacman and RAG projects.

uv add cli-fw

Example

from dataclasses import dataclass
from cli_fw import Command, arg


@dataclass
class Serve:
    port: int = arg(help="Port to listen on", default=8000)


command = Command("serve", schema=Serve)
parsed = command.execute(["--port", "8080"])

It supports positional and optional arguments, choices, booleans, lists, nested commands, generated help, and typed parse errors.

Where I use it

This is my internal CLI framework for 42 projects. The latest implementation was extracted from Pacman, a work-in-progress group project in the 42 organization, with behavior checked against RAG Against the Machine. Pacman uses it for the game command and RAG uses it to validate command syntax and produce diagnostics before command execution.

Dependencies

  • Python 3.10+
  • typed-errs for Result, Err, and diagnostics

Development and release

Run mise run check. Every push to master publishes a unique 0.0.<CI run> ZeroVer version through PyPI Trusted Publishing. mise run publish remains available.

Download files

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

Source Distribution

cli_fw-0.0.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

cli_fw-0.0.3-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file cli_fw-0.0.3.tar.gz.

File metadata

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

File hashes

Hashes for cli_fw-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6f8852d11a3105711cf1d5700a796bf9f3c158528014001baeaa5716e2d9052a
MD5 afcea9d4066e4337b949afc94f496b25
BLAKE2b-256 18929656871e30eaa984e73eddcd11fec74cf088f0eb7dc88ede2154f05eb007

See more details on using hashes here.

Provenance

The following attestation bundles were made for cli_fw-0.0.3.tar.gz:

Publisher: release.yml on 0xveya/cli-fw

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

File details

Details for the file cli_fw-0.0.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for cli_fw-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7efd344b3abdd0c4c3b5a75be3cc436ed9122002e3b8a0eb66971f226ed26c91
MD5 0d412920f39037f56d9f17e9e519d754
BLAKE2b-256 8ffd2f2e37c3bcdbf57b519be260a887fa65c68863bc829e4634df8249d207f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cli_fw-0.0.3-py3-none-any.whl:

Publisher: release.yml on 0xveya/cli-fw

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

Release history Release notifications | RSS feed

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

This release

0.0.3 This release

2 files

0.0.2

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