Skip to Content

Installing Skills

A CMDOP skill is a scoped capability bundle — a manifest, an entry script, and dependencies — that the agent can invoke as a sub-session. This guide walks through finding, installing, running, and removing them.

What a skill is

Three files make a skill:

  • skill.md — manifest with YAML frontmatter and a system prompt.
  • run.py (or other entry point) — the executable, JSON-stdout contract.
  • requirements.txt — auto-installed in a virtual environment on first run.

Output contract: every skill returns {"ok": bool, ...} and exits with status 0 (success) or 1 (failure). See cmdop_skills/skills/email-macos/ for a canonical example.

Skill origins

Three buckets, listed in precedence order (last wins):

OriginLives atUpdated by
Built-inShipped with CMDOP binaryCMDOP releases
GlobalWorkspace-scoped, fetched via cmdop skills synccmdop skills install / update
Local.cmdop/skills/ in your repoEdited by hand

Local beats global beats built-in. Use local for project-specific overrides.

Listing what is available

cmdop skills list

Shows installed skills with origin, version, and last-updated timestamp.

Installing from the marketplace

cmdop skills install email-macos cmdop skills install https://github.com/your-org/skill-foo.git

Default install location is the global directory. Use --local to drop into .cmdop/skills/ instead — useful for skills that should only run inside one repo.

Running a skill manually

cmdop skills run email-macos -- --query "from:boss"

The -- separates skill arguments from the CLI’s flags. The skill prints JSON on stdout; the CLI surfaces ok: false reasons as exit-1 with the reason logged.

Inside chat the agent invokes skills via the skill_run(name, prompt) tool — a sub-session with full tool access governed by the parent provider.

Updating and uninstalling

cmdop skills update email-macos cmdop skills uninstall email-macos

For local skills (in .cmdop/skills/), uninstall just removes the directory. For global skills, it also clears the cached venv.

What cmdop skills sync does

Pulls the workspace-defined global skill manifest, then installs / updates / removes to match. Run after a teammate adds or removes a skill from the workspace catalog.

cmdop skills sync

Authoring your own

The shortest path:

  1. Create a directory with skill.md, run.py, requirements.txt.
  2. Drop it under .cmdop/skills/<name>/.
  3. cmdop skills list should show it as local.
  4. cmdop skills run <name> to test.

For a deeper walkthrough see Writing your first skill.

A skill that returns {"ok": false, "reason": "..."} and exits 1 lets the parent agent gracefully recover. Always honor the contract.

Local skills (.cmdop/skills/) override global ones. Use them for project-specific overrides; do not ship them in your global skill set or you will surprise teammates.

Last updated on