Skip to main content

A tiny, typed, signature-driven CLI runner.

Project description

yeetr

yeetr, build tiny CLIs. Easy to code. Based on Python type hints.

Build Release Coverage Package version Supported Python versions License

yeetr

A tiny, typed, signature-driven CLI runner. Supports Python 3.13 and 3.14.

No decorators. No command classes. No ceremony. Just yeet the function.

Write a plain function, run it from the command line — yeetr turns the signature into args and options for you:

# app.py
def main(thing: int, *, n: float = 0.1) -> None:
    print(thing, n)
yeet app.py 5 -n 0.2

No if __name__ == "__main__" block, no yeetr.run(...) call, no decorators. Parameters before the bare * become positional args, parameters after it become --options.

Install

uv add yeetr

Highlights

  • Zero boilerplateyeet app.py finds and runs main — or any public function you name — and scaffolds the file if it doesn't exist yet.
  • Executable shebangs#!yeet makes a script runnable on its own; #!yeet FUNC picks the function to run.
  • Fully typedstr, int, float, bool, Path, datetime, date, time, UUID, Decimal, Literal, Enum, T | None, list[T], tuples, and structured dataclass/NamedTuple args, all Pyright-strict clean.
  • Async-nativeasync def main just works, with automatic uvloop if it's installed.
  • Rich output — formatted logging and help/error tables out of the box.

yeetr help output

Docs

The full guide — parameter metadata, env var fallback, path validators, runtime behavior, a yeetr vs. typer comparison, and the API reference — lives at rogerthomas.github.io/yeetr.

Contributing

See CONTRIBUTING.md for how to set up a dev environment, run the test suite, and submit changes.

License

MIT

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

yeetr-2026.7.2.post4.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

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

yeetr-2026.7.2.post4-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file yeetr-2026.7.2.post4.tar.gz.

File metadata

  • Download URL: yeetr-2026.7.2.post4.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for yeetr-2026.7.2.post4.tar.gz
Algorithm Hash digest
SHA256 18b3bc6cff4fec6f961488a0c0714420dce2b5dbf3714cfdab988a282503d5fb
MD5 c6c6d7a5bafcf9668381351497d2a09c
BLAKE2b-256 57291d5dde62e91e0f388d5251094017a4de10d32d498607c91a3137ff164ff2

See more details on using hashes here.

File details

Details for the file yeetr-2026.7.2.post4-py3-none-any.whl.

File metadata

  • Download URL: yeetr-2026.7.2.post4-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for yeetr-2026.7.2.post4-py3-none-any.whl
Algorithm Hash digest
SHA256 a22193d898b8191f6bbe32aa0844c99b6289a4e26d3762a93cf07fb1461ec89b
MD5 311b72d173a8c54a79cd4445ca924e5a
BLAKE2b-256 abe0e5669cca2896d661c5666afe5e7e20129770cc0dfca2e3ad73c809e97ae4

See more details on using hashes here.

Supported by

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