mando
Create Python CLI apps with little to no effort at all!
What it is and what it does
mando is a thin decorator-based wrapper around argparse that reduces boilerplate when building command-line applications with multiple subcommands. Instead of manually configuring argparse objects, you decorate functions with @command and mando extracts argument names, types, and help text from the function signature and docstring (supporting Sphinx, Google, and NumPy styles). It automatically generates short options from docstring parameter hints and validates argument types using Python 3 type annotations.
The package is designed for developers who want CLI applications with minimal setup—typical use is a few decorated functions and a call to main(). It has no runtime dependencies, installs easily, and works across Python 3.3 through 3.13. The trade-off is that it is dormant (last release October 2024, no recent commits tracked), so while it is stable and carries no known vulnerabilities, you are adopting a library that is not actively maintained.
Use it for:
- Build a multi-command CLI tool (like git with push, pull, commit) by decorating functions instead of writing argparse boilerplate.
- Automatically generate help text and short options from function docstrings without manually configuring each argument.
- Validate command-line argument types at parse time using Python 3 type annotations.
- Prototype or ship small-to-medium CLI applications where decorator-driven design is faster than hand-coded argparse.
- Support shell autocompletion via argcomplete integration for a polished user experience.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
mando wraps argparse to let you build command-line applications with decorators, automatically generating argument parsing and help text from function signatures and docstrings.
Yes, for stable, single-developer or small-team CLI projects where you want to avoid argparse verbosity and don't need active maintenance. The package is dormant but Production/Stable, has no dependencies, and carries no known vulnerabilities. Not recommended if you need ongoing support or are building a large, complex CLI that may require future enhancements.
Install
mando on PyPI
pip
pip install mandouv
uv add mandopoetry
poetry add mandoInstalling mando
Before you install
Low friction to install; the package is dormant (663 days since last release) but marked Production/Stable and carries no known vulnerabilities. Suitable for stable, maintenance-light use cases.
License in practice
MIT license is permissive; you can use, modify, and distribute mando freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install mando
from mando import command, main
@command
def echo(text, capitalize=False):
'''Echo the given text.'''
if capitalize:
text = text.upper()
print(text)
if __name__ == '__main__':
main()
Verify before relying
- Whether shell autocompletion via argcomplete is tested and functional in current Python versions.
- Current state of the repository and whether maintenance will resume if issues are reported.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 663 days since the last release |
| First released | |
| Downloads | 5,836,517/month — #2,028 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mando-0.8.2-py2.py3-none-any.whl
Keywords: argparse, argument parser, arguments, cli, command line, commands, decorator, dispatch, flags, getopt, options, optparse, parser, subcommands
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
clizeClize turns Python functions into command-line…
permissive · top 15,000 on PyPI
pegasus-cliA command-line tool for managing SaaS Pegasus…
permissive · top 15,000 on PyPI
autocommandAutocommand converts a Python function into a…
copyleft · top 5,000 on PyPI
targGenerates a command-line interface from…
permissive · top 15,000 on PyPI
entrypoint2Converts Python function signatures and…
permissive · top 15,000 on PyPI
placPlac generates command-line interfaces from…
permissive · top 5,000 on PyPI
guacamoleGuacamole provides a framework for building…
copyleft · top 15,000 on PyPI
faceFace is a command-line application framework…
unclear · top 1,000 on PyPI
argparseProvides command-line argument parsing for…
permissive · top 1,000 on PyPI
pydantic-argparseGenerates command-line argument parsers from…
permissive · top 5,000 on PyPI