Skip to main content

Rhythmos CLI

A lightweight CLI framework. Install once, put commands in each project's commands/ folder.

Install

pip install rhythmos-cli

Usage

In any project:

rhythmos-cli make hello -d "Say hello to someone"
# edit commands/hello.py
rhythmos-cli hello Alice

rhythmos is an optional shorthand for the same CLI.

make and list are built-in system commands. If you define a user command with the same name, yours wins and a warning is printed.

Commands are loaded from ./commands (cwd), or from RHYTHMOS_COMMANDS if set.

Write a command

from rhythmos import BaseCommand


class HelloCommand(BaseCommand):
    def get_description(self):
        return "Say hello to someone"

    def add_arguments(self):
        self.parser.add_argument("name", help="Name of the person to greet")

    def handle(self, name):
        print(f"Hello, {name}!")

File commands/foo_bar.py → rhythmos-cli foo-bar.

See examples/commands/hello.py for a ready example.

Develop this package

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
RHYTHMOS_COMMANDS=examples/commands rhythmos-cli hello World
pytest

Release (GitLab CI)

Version comes from git tags (no manual edits in pyproject.toml). Pushing a tag builds and publishes that version:

git add -A && git commit -m "..." 
git tag v26.10.2
git push origin v26.10.2

Requires CI variable PYPI_TOKEN (masked + protected) and protected tags v*. If a tag pipeline fails, push a new tag — protected tags usually cannot be deleted via git.

Metadata

Release files for rhythmos-cli 26.10.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rhythmos-cli 26.10.5
File Size Uploaded Provenance
rhythmos_cli-26.10.5.tar.gz 8.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for rhythmos-cli 26.10.5
File Interpreter ABI Platform
rhythmos_cli-26.10.5-py3-none-any.whl Python 3 none any Details

Total release size: 17.6 kB

Release files / rhythmos_cli-26.10.5.tar.gz

Download URL rhythmos_cli-26.10.5.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
927b6b89405ed5f464e222074eb938d23f62151fe16a6db9c11cb46fa973f40d
BLAKE2b-256 checksum
How to use checksums
70e98a8a467ecaca58f1042e56a630ec455e4ded6803d3f86aad240f4ecf555d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / rhythmos_cli-26.10.5-py3-none-any.whl

Download URL rhythmos_cli-26.10.5-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
734912ec9afea2428199a18e62fa89a15f76f56bb2d21128280900b309c0dab4
BLAKE2b-256 checksum
How to use checksums
5a168a4fd43a21f75dc444e963234bb0dbb445b42e4de5f6bc9f4807a024b59c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for rhythmos-cli 26.10.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page