--- id: decli version: "0.6.3" license: MIT license_treatment: permissive maintenance: aging --- # decli — Minimal, easy-to-use, declarative cli tool License: permissive · Maintenance: aging · Downloads: 3.9M/mo ## What it is and what it does Decli is a thin declarative wrapper around Python's argparse library. Instead of writing imperative parser setup code with repeated add_argument() calls, you define your CLI structure as a nested dictionary—specifying prog name, description, arguments, subcommands, and argument groups—then pass it to the cli() function to get a ready-to-use parser. It accepts all standard argparse argument options (action, nargs, type, choices, help, metavar, dest, etc.) and adds support for argument grouping and a func parameter on subcommands to map commands to handler functions. The package is designed for developers building larger applications with many arguments and subcommands who want their CLI definition to be more readable and maintainable than traditional argparse boilerplate. It has no external runtime dependencies and works with Python 3.9 through 3.13. Use it for: - Build a multi-command CLI tool (like git or docker) by defining subcommands and their handlers in a single data structure - Rapidly prototype a command-line interface for a Python application without writing repetitive argparse setup code - Organize related arguments into logical groups for clearer help output and better code readability - Create a CLI where each subcommand maps to a specific function, keeping interface definition separate from business logic ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Decli wraps argparse to let you define command-line interfaces declaratively as Python dictionaries, supporting arguments, subcommands, and argument groups without repeated boilerplate. Yes, if you are building a CLI-heavy application and prefer declarative, dictionary-based configuration over imperative argparse calls. The zero-dependency install and permissive license make it low-risk. However, note that maintenance is aging (last release 439 days ago), so do not expect active development or rapid fixes for edge cases. ## Install pip install decli uv add decli poetry add decli ## Installing decli Before you install: Low friction; pure Python wheel with no runtime dependencies. Maintenance status is aging (439 days since last release), so expect no active development or rapid bug fixes. License in practice: MIT license is permissive; you can use, modify, and distribute decli freely in commercial or private projects with minimal restrictions. Quickstart: from decli import cli data = { "prog": "myapp", "description": "Process integers", "arguments": [ {"name": "integers", "type": int, "nargs": "+"}, {"name": "--sum", "action": "store_true"} ] } parser = cli(data) args = parser.parse_args() Verify before relying: - Whether the package is actively maintained or in maintenance-only mode despite the aging status - Real-world performance or scalability limits when handling very large numbers of arguments or deeply nested subcommands ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: aging - Downloads: 3.9M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags declarative cli argument parser, argparse wrapper dictionary, command line interface builder, cli tool from dict, subcommand argument parser, minimal cli framework, argparse declarative, cli-builder, argparse-wrapper, declarative-config [View on SkillFed](https://skillfed.io/packages/decli) · [View on PyPI](https://pypi.org/project/decli/)