{"repo":"kootenpv/cliche","free":true,"listed":false,"github":"https://github.com/kootenpv/cliche","clone":"git clone https://github.com/kootenpv/cliche.git","description":"Build a simple command-line interface from your functions :computer:","language":"Python","stars":111,"topics":["cli","command-line","command-line-tool"],"license":null,"category":"cli-tools","readme_excerpt":"cliche Turn any Python function into a CLI in one line. Decorate, install, run. That's the whole surface of the library. It does a lot more under the hood — AST-based scanning, mtime caching, lazy imports, type coercion, enum / pydantic handling, shell autocomplete, zombie-entry cleanup, parallel e2e testing — all of it is on by default. You don't need to know any of it to use it. Everything below is reference material for when you want to know about specific features. 0.20.0 status note. This release is a significant refactor that has been in the making for a long time, fixing a range of issues the earlier versions carried. A v1 release is slated for June 2026 — the current work is the runway to that. Expect the public surface above to stay stable through the v1 cut. --- Why it exists click / typer ask you to restructure code around decorators and argument definitions. argparse works but is verbose. fire is fast but guesses too much. cliche takes a different route: your function signature is your CLI . Type annotations become argparse types. Defaults become flags. Docstrings become --help text. No re-declaration. - Sub-50 ms startup even in large packages — feels instant. AST-only scanning + per-file mtime cache, and lazy-import of the module for the invoked command only. - No imports at scan time — @cli is detected from source text, so scanning doesn't execute your code. 100 files with heavy top-level imports still launches instantly. - LLM-friendly from day one — every ins","default_branch":null,"files":null,"tree":[],"storefront":"/r/kootenpv","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kootenpv/cliche/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}