cyclopts
Intuitive, easy CLIs based on type hints.
Decision gist · record as of 2026-08-14
Yes. Cyclopts is actively maintained, has no known vulnerabilities, installs with low friction, and offers a genuinely more concise alternative to comparable CLI frameworks for applications that benefit from type-driven argument parsing. It is most valuable if you want to minimize boilerplate and leverage Python's type system for CLI validation and help generation.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction installation with six well-maintained runtime dependencies.
- The package is actively maintained with a recent release (10 days old) and no known vulnerabilities.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions.
last release 2026-08-04 (10 days) · last repo commit 2026-08-13 · 1,228 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 97,141,152 downloads/mo, #353 on PyPI
Alternatives
Verify before relying
from cyclopts import run
def hello(name: str, count: int = 1):
for _ in range(count):
print(f"Hello {name}")
run(hello)- Whether the package's type-hinting capabilities extend to all user-defined types or only the documented ones (Pydantic, dataclasses, Attrs).
- Performance characteristics when handling large numbers of commands or deeply nested subcommand hierarchies.
What it is and what it does
Cyclopts is a command-line interface framework that builds CLI applications directly from Python functions and their type annotations. Instead of manually defining arguments and options, you write a normal function with type hints and docstrings, and Cyclopts automatically converts it into a full-featured CLI with argument parsing, validation, and help text generation. The framework supports complex types including Unions, Literals, Pydantic models, dataclasses, and Attrs classes, making it possible to express sophisticated CLI behavior with minimal boilerplate.
The package depends on attrs, docstring-parser, rich-rst, rich, tomli, and typing-extensions to handle type introspection, docstring extraction, and formatted terminal output. It requires Python 3.10 or later and is actively maintained with no known security vulnerabilities. The framework is designed to be more concise and readable than comparable tools, with the ability to express complex validation and type constraints directly in function signatures.
Use it for
- Build a multi-command CLI tool where each command is a decorated function with type-hinted parameters and docstrings.
- Create a deployment script that accepts Literal types for environment choices (dev, staging, prod) with automatic validation.
- Generate help pages automatically from function docstrings without writing separate help text or argument definitions.
- Parse complex arguments including Union types, optional parameters, and custom dataclass or Pydantic model instances.
- Develop a tool that validates user input against type constraints before passing arguments to your application logic.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Cyclopts is actively maintained, has no known vulnerabilities, installs with low friction, and offers a genuinely more concise alternative to comparable CLI frameworks for applications that benefit from type-driven argument parsing. It is most valuable if you want to minimize boilerplate and leverage Python's type system for CLI validation and help generation.
Install
cyclopts on PyPI
Before you install
Low friction installation with six well-maintained runtime dependencies. The package is actively maintained with a recent release (10 days old) and no known vulnerabilities.
Requires Python 3.10 or later.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions.
Quickstart
from cyclopts import run
def hello(name: str, count: int = 1):
for _ in range(count):
print(f"Hello {name}")
run(hello)
Verify before relying
- Whether the package's type-hinting capabilities extend to all user-defined types or only the documented ones (Pydantic, dataclasses, Attrs).
- Performance characteristics when handling large numbers of commands or deeply nested subcommand hierarchies.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 6 packagesattrsdocstring-parserrich-rstrichtomlityping-extensions |
| Maintenance | Actively maintained 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,141,152 / month, #353 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: cyclopts-4.22.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “docstring-based help generation”
- cycloptsCyclopts is a CLI framework that converts Python functions into…
- arguablyConverts Python functions and their docstrings into command-line…
- docopt-ngParses command-line arguments and options from a docstring-based…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also tyro · targ · sphinxcontrib-typer · typer-cli · typer-slim · jsonargparse · typer-config · simple-parsing · django-typer