Declarative commands
Turn async functions into CLI subcommands with `Arg()` metadata and JSON results.
@skill.command
Arg(help=...)
{"ok": true, ...}
Product / Skill SDK
Scaffold with `cmdop-skill init`, test with `TestClient`, and publish to the marketplace. This is the authoring toolkit — browse installed skills separately in the Skills directory.
Install the Skill SDK
Skill SDK documentationYou · 11:48
Spin up three agents to talk to each other, then paste the conversation here.
Cmdop · 11:49
✓ delegate_task (6.2s)
◆ Delegate subagentagent_type: planner · background: false
Dialogue
A: Morning — what are we shipping today?
B: API cutover is green; watching error budget.
C: I will capture risks in the incident doc.
Turn async functions into CLI subcommands with `Arg()` metadata and JSON results.
@skill.command
Arg(help=...)
{"ok": true, ...}
Exercise commands in tests without spawning a full agent — same contract as production.
client.run("greet", name="x")
client.run_cli("greet --name x")
Structure `skill/` manifest and publish; discovery for end users stays on the Skills site.
cmdop-skill init
SkillConfig
skills site → install & browse
Step 1
Run `cmdop-skill init` and fill `pyproject.toml` once.
Step 2
Add commands, SkillCache if needed, and cover with TestClient.
Step 3
Follow the marketplace checklist and ship a versioned package.
Name, version, and description flow from `pyproject.toml` into the runtime.
Skill()
skill/readme.md
no duplicated metadata
Setup and teardown run around every command when you need shared context.
@skill.setup
@skill.teardown
shared clients
Use the Skills directory to install; use this SDK to build new ones.
skills marketplace
authoring toolkit
different URLs
Declarative commands, JSON contracts, cache helpers, and a path from repo to marketplace listing.