Pull argparse configuration out of a CLI tool and write it as Markdown.
Great for embedded in a README.md with cog.
Possible invocation options:
# entrypoint command, dotted module
uv tool run argparse-help-markdown -m tests.data.example
# script, script
argparse_help_markdown.py --write.md script.py
# import, function
from argparse_help_markdown import run_script
run_script("mytool.py", include_usage=True)It writes this table about itself:
usage: argparse_help_markdown.py script.py
| Options | Values | Help |
|---|---|---|
| positional arguments | ||
filename |
Optional. | Path to the subject script. |
| options | ||
-h --help |
Flag. | show this help message and exit |
--usage |
Flag. | Emit the terse usage info in triple-ticks. Excluded by default. |
--write |
Optional. | Write to named file instead of stdout. |
-m --module |
Optional. | Run as module. |
This is built as a single-file that can be installed as a package or used standalone. It can be imported as a module or run on the command-line. It's mostly useful inside a documentation CICD pipeline, where flexability is key. No dependencies outside of standard library.
With uv: uv tool run argparse-help-markdown
With pipx: pipx run argparse-help-markdown
Or install with pip: pip install argparse-help-markdown
Or grab a locked version with curl: curl -O https://raw.githubusercontent.com/ellieayla/argparse-help-markdown/a35c9ea9cd975575adb45a4cbbf3d140adf04269/src/argparse_help_markdown.py; python3 argparse_help_markdown.py