cleo
Cleo allows you to create beautiful and testable command-line interfaces.
Install
cleo on PyPI
pip
pip install cleouv
uv add cleopoetry
poetry add cleoPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7,<4.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — crashtest, rapidfuzz |
| Maintenance | actively maintained — 1,018 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: cleo-2.1.0-py3-none-any.whl
Keywords: cli, commands
About cleo
from the package's own PyPI description — quoted content, verbatim
Cleo
Poetry (image) Tests (image) PyPI version (image)
Create beautiful and testable command-line interfaces.
Resources
Usage
To make a command that greets you from the command line, create
greet_command.py and add the following to it:
```python from cleo.commands.command import Command from cleo.helpers import argument, option
class GreetCommand(Command): name = "greet" description = "Greets someone" arguments = [ argument( "name", description="Who do you want to greet?", optional=True ) ] options = [ option( "yell", "y", description="If set, the task will yell in uppercase letters", flag=True ) ]
def...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Cleo is a framework for building beautiful, testable command-line interfaces with support for commands, arguments, options, colored output, and verbosity levels.
Cleo has low install friction with only two runtime dependencies (crashtest and rapidfuzz) and is distributed as a pure Python wheel. The project is actively maintained with a recent commit on 2026-08-03 and carries 1351 GitHub stars, indicating solid community adoption.
Cleo is licensed under the MIT License (permissive), which allows broad use including in commercial projects with minimal restrictions—only requiring attribution and inclusion of the license notice.
Usage
from cleo.commands.command import Command
from cleo.application import Application
class GreetCommand(Command):
name = "greet"
description = "Greets someone"
def handle(self):
self.line("Hello")
app = Application()
app.add(GreetCommand())
app.run()
Requires Python 3.7 or later (supports 3.7–3.11 as of version 2.1.0).
Verdict: Cleo is a stable, actively maintained CLI framework well-suited for building testable command-line applications. With low install friction, permissive MIT licensing, no known vulnerabilities, and top-1000 PyPI popularity, it is a reliable choice for developers needing structured CLI tooling.
Needs verification
- Whether crashtest and rapidfuzz introduce any transitive dependencies or platform-specific compilation requirements beyond what the wheel distribution handles.
- Performance characteristics or memory footprint for large-scale command hierarchies.
Similar packages
permissive · top 1,000 on PyPI
poetry-corepermissive · top 1,000 on PyPI
colorlogpermissive · top 1,000 on PyPI
factory-boypermissive · top 1,000 on PyPI
ordered-setpermissive · top 1,000 on PyPI
orderly-setpermissive · top 1,000 on PyPI
poetrypermissive · top 1,000 on PyPI
dacitepermissive · top 1,000 on PyPI
richpermissive · top 100 on PyPI
simple-salesforcepermissive · top 1,000 on PyPI