skillfed

cleo

Cleo allows you to create beautiful and testable command-line interfaces.

cleo Permissive license MIT Active 1,351 v2.1.0 released

Install

cleo on PyPI

pip

pip install cleo

uv

uv add cleo

poetry

poetry add cleo

Package 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

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software DevelopmentTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: Libraries :: Python Modules

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.
cli framework pythoncommand line interface buildercolorized terminal outputargument parsing clitestable command frameworkpython cli applicationconsole commands library

Similar packages