Skip to content

AgentSkills management utilities #2301

@enyst

Description

@enyst

Summary

Add first-class AgentSkills management utilities in the SDK (install/uninstall/list/enable/disable) to complement the existing AgentSkills loader. This would provide the missing “package management” layer for skills directories that follow the AgentSkills spec.

Background

Current state in the SDK:

  • AgentSkills format is supported via SKILL.md loaders (load_skills_from_dir, load_user_skills, load_public_skills).
  • Public skills are loaded by cloning OpenHands/extensions into a local cache.
  • There is no dedicated API to install, uninstall, list, or enable/disable AgentSkills.
  • Enable/disable is effectively handled at runtime via AgentContext(load_user_skills=..., load_public_skills=...) or custom filtering.

Meanwhile, the new installed plugin utilities (#2031) cover plugin install/uninstall/list/update, but do not address AgentSkills packages directly.

Goals

  • Provide a management layer for AgentSkills directories that follows the AgentSkills spec.
  • Enable CLI workflows like /skills install ..., /skills list, and allow persistent enable/disable.
  • Keep AgentSkills separate from plugin installs (no manifest required; skill root = SKILL.md).

Proposed API (example)

install_skill(source, ref=None, repo_path=None, installed_dir=None, force=False)
uninstall_skill(name, installed_dir=None)
list_installed_skills(installed_dir=None)
get_installed_skill(name, installed_dir=None)
update_skill(name, installed_dir=None)

Potential storage:

  • ~/.openhands/skills/installed/ + metadata file (e.g. .installed.json)

Non-goals

  • Replacing plugin install utilities
  • Defining marketplace search UX (should live in CLI/UX layers)

Motivation

This unblocks CLI features (enable/disable global skills, /skills install, slash menu) while keeping the SDK’s skill loading semantics consistent with the AgentSkills spec.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions