CMDOP Skill Framework - decorator-based CLI for CMDOP skills
Project description
cmdop-skill
Decorator-based CLI framework for CMDOP skills + dev toolchain.
Install
pip install cmdop-skill
Quick Start
from cmdop_skill import Skill, Arg
skill = Skill(name="my-skill", description="Does things", version="1.0.0")
@skill.command
async def greet(name: str = Arg(help="Who to greet", required=True)) -> dict:
"""Say hello."""
return {"message": f"Hello, {name}!"}
if __name__ == "__main__":
skill.run()
Framework Features
@skill.command— turn async/sync functions into CLI subcommandsArg()— declarative arguments withhelp,required,default,choices@skill.setup/@skill.teardown— lifecycle hooksTestClient— test harness for skills- Auto
src/path —src/is added tosys.pathautomatically - JSON output — all commands return
{"ok": true, ...}by default
CLI Commands
cmdop-skill --help
| Command | Description |
|---|---|
publish |
Publish skill to the CMDOP marketplace |
list |
List your published skills |
install <path> |
Symlink skill into system skills directory |
uninstall <name> |
Remove skill from system skills directory |
run <path> <prompt> |
Run skill via cmdop SDK |
test <path> |
Run pytest in skill directory |
install / uninstall
cmdop-skill install ./skills/email-macos
# ✓ Installed email-macos → ~/Library/Application Support/cmdop/skills/email-macos (symlink)
cmdop-skill uninstall email-macos
# ✓ Uninstalled email-macos
run
cmdop-skill run ./skills/email-macos "list my email accounts"
# ✓ Done (2.3s, 1234 tokens)
cmdop-skill run ./skills/email-macos "send test" --machine my-mac --model gpt-4o --json
test
cmdop-skill test ./skills/email-macos
cmdop-skill test ./skills/email-macos --args "-v -k test_send"
publish
cmdop-skill publish --api-key cmdop_xxx
cmdop-skill publish --json # CI mode
Development
make install # pip install -e .
make install-local # use local cmdop package (editable)
make test # pytest tests/ -v
make lint # ruff check src/
API
| Export | Description |
|---|---|
Skill |
Main class — registers commands, runs CLI |
Arg |
Argument descriptor with metadata |
TestClient |
Test harness — client.run("command", "--flag", "value") |
generate_manifest |
Generate skill.md manifest |
publish_skill |
Programmatic publish to marketplace |
json_output / wrap_result / format_error |
Output formatting helpers |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cmdop_skill-2026.3.4.tar.gz
(33.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cmdop_skill-2026.3.4.tar.gz.
File metadata
- Download URL: cmdop_skill-2026.3.4.tar.gz
- Upload date:
- Size: 33.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40fa600aa430e8fbe70ae5e3604ccd0988fb591ee00bbd078963c6cef312ef59
|
|
| MD5 |
de578f09101a40b31c6a4cac8a8b6270
|
|
| BLAKE2b-256 |
b3410f5d673eb0e073a9d7c49023f2557d5f20f2436765746f820c37214699a5
|
File details
Details for the file cmdop_skill-2026.3.4-py3-none-any.whl.
File metadata
- Download URL: cmdop_skill-2026.3.4-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d6fe906f5474459bc22804a26d608dd8af4adc464a39c306a3ce542b3b1177e
|
|
| MD5 |
cf9cfbe7277db830b04de9262f83c9c7
|
|
| BLAKE2b-256 |
fa69107600f3e30a058807ec73f7740c74c5a5353799b9154ae566cc787a83a9
|