Summary
Audit result from AGE-850: the CLI currently exposes /skills for viewing loaded resources, but it does not yet expose a dedicated /skill command surface for managing installed AgentSkills.
The SDK now has a public lifecycle API that is suitable for CLI integration:
install_skill()
list_installed_skills()
load_installed_skills()
enable_skill()
disable_skill()
uninstall_skill()
update_skill()
These are exposed from openhands.sdk.skills and demonstrated by runnable examples in:
examples/05_skills_and_plugins/04_skill_enable_disable/main.py
examples/05_skills_and_plugins/05_skill_uninstall/main.py
Current gap
openhands_cli/tui/core/commands.py currently lists /skills for inspection, but there is no /skill lifecycle command family for install/enable/disable/uninstall flows.
/plugin command tracking already exists in APP-858. This issue tracks the missing skill-side command surface separately so the CLI can expose the two command families cleanly:
Proposed command surface
/skill install <source>
/skill list
/skill enable <name>
/skill disable <name>
/skill uninstall <name>
/skill update <name>
Acceptance criteria
- A user can install an AgentSkill from the CLI via the SDK public API.
- A user can list installed skills and see enabled/disabled state.
- A user can disable a skill and confirm it is excluded from the loaded installed skills set.
- A user can re-enable the same skill without reinstalling it.
- A user can uninstall a skill and confirm its install directory + metadata entry are removed.
- Command UX stays clearly separated from
/plugin management.
Summary
Audit result from AGE-850: the CLI currently exposes
/skillsfor viewing loaded resources, but it does not yet expose a dedicated/skillcommand surface for managing installed AgentSkills.The SDK now has a public lifecycle API that is suitable for CLI integration:
install_skill()list_installed_skills()load_installed_skills()enable_skill()disable_skill()uninstall_skill()update_skill()These are exposed from
openhands.sdk.skillsand demonstrated by runnable examples in:examples/05_skills_and_plugins/04_skill_enable_disable/main.pyexamples/05_skills_and_plugins/05_skill_uninstall/main.pyCurrent gap
openhands_cli/tui/core/commands.pycurrently lists/skillsfor inspection, but there is no/skilllifecycle command family for install/enable/disable/uninstall flows./plugincommand tracking already exists in APP-858. This issue tracks the missing skill-side command surface separately so the CLI can expose the two command families cleanly:/plugin .../skill ...Proposed command surface
/skill install <source>/skill list/skill enable <name>/skill disable <name>/skill uninstall <name>/skill update <name>Acceptance criteria
/pluginmanagement.