cement
Application Framework for Python
Decision gist · record as of 2026-08-14
Yes. Cement is a solid choice if you are building anything beyond a trivial CLI tool and want a structured, extensible foundation. The zero-dependency core, active maintenance, permissive license, and long track record (since 2014) make it low-risk. Install it if you need subcommands, plugins, configuration management, or a team-standard CLI structure; skip it if you only need basic argument parsing, where simpler libraries may suffice.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Installation is straightforward with low friction—the core framework has zero external runtime dependencies.
- The package is actively maintained with a recent release and steady commit activity, making it a stable choice for CLI development.
License · maintenance · safety
permissive license (permissive) — Cement is distributed under the BSD License (three clause), a permissive open-source license that permits commercial and private use with minimal restrictions, requiring only copyright and license notice in redistributions.
last release 2026-07-13 (32 days) · last repo commit 2026-08-10 · 1,348 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 610,132 downloads/mo, #5,768 on PyPI
Alternatives
Verify before relying
pip install cement
from cement import App
with App('myapp') as app:
app.setup()
print('Hello from Cement')- Whether the handler/interface customization system is documented with sufficient examples for typical use cases.
- Performance characteristics when handling very large numbers of subcommands or deeply nested controller hierarchies.
- Compatibility and maturity of optional extensions (colorlog, redis, etc.) relative to their standalone equivalents.
What it is and what it does
Cement is a mature Python framework for building command-line applications, first released in 2014 and actively maintained. It provides a structured platform with customizable handlers for configuration parsing, argument handling, logging, plugins, controllers (for subcommands), and output rendering. The core framework has zero external dependencies, making it lightweight to install, while optional extensions can be added as needed for features like colored logging or caching.
Developers use Cement to move beyond simple argument parsing and build professional CLI tools with consistent structure, plugin support, and configuration management. It scales from single-file scripts to complex multi-tier applications and is particularly suited for teams that want a standard, opinionated foundation rather than assembling multiple smaller libraries. The framework emphasizes customization through handlers and interfaces, allowing applications to swap implementations without changing application code.
Use it for
- Build a multi-command CLI tool with subcommands and nested controllers for managing infrastructure or services.
- Create a plugin-based application where users can extend functionality without modifying core code.
- Develop a backend service with consistent logging, configuration file parsing, and command-line argument handling.
- Scaffold a team project that needs a standardized CLI structure and shared conventions across multiple applications.
- Build a rapid-prototyping CLI that can grow from a simple script into a full-featured application without major refactoring.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Cement is a solid choice if you are building anything beyond a trivial CLI tool and want a structured, extensible foundation. The zero-dependency core, active maintenance, permissive license, and long track record (since 2014) make it low-risk. Install it if you need subcommands, plugins, configuration management, or a team-standard CLI structure; skip it if you only need basic argument parsing, where simpler libraries may suffice.
Install
cement on PyPI
Before you install
Installation is straightforward with low friction—the core framework has zero external runtime dependencies. The package is actively maintained with a recent release and steady commit activity, making it a stable choice for CLI development.
Requires Python 3.10 or later.
License in practice
Cement is distributed under the BSD License (three clause), a permissive open-source license that permits commercial and private use with minimal restrictions, requiring only copyright and license notice in redistributions.
Quickstart
pip install cement
from cement import App
with App('myapp') as app:
app.setup()
print('Hello from Cement')
Verify before relying
- Whether the handler/interface customization system is documented with sufficient examples for typical use cases.
- Performance characteristics when handling very large numbers of subcommands or deeply nested controller hierarchies.
- Compatibility and maturity of optional extensions (colorlog, redis, etc.) relative to their standalone equivalents.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 32 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 610,132 / month, #5,768 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3 |
Evidence: cement-3.0.16-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 › “python cli framework”
- cementCement is a Python application framework designed specifically for…
- faceFace is a command-line application framework that builds CLI parsers…
- knackKnack is a Python framework for building command-line interfaces with…
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 docker-compose · polylith-cli · onyx-devtools · poetry-plugin-shell · cliff · pytest-flake8 · click · google-cloud-memcache · podman-compose · clikit