Uh oh!
There was an error while loading. Please reload this page.
feat: expose skills as slash commands - #9669
Conversation
- Add skill loading to Command.list() so skills appear as /skill-name commands - Skill commands invoke the skill tool to show 'Loaded skill: X' in UI - Add (Skill) suffix in autocomplete dropdown to distinguish from MCP commands - Fix skill tool error message to show actual skill names instead of array indices - Regenerate SDK types with skill?: boolean field
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
The following comment was made by an LLM, it may be inaccurate: I found a potentially related PR: PR #9324: feat: add /skills command and skill autocomplete This PR appears to address similar functionality - adding skill commands and autocomplete for skills. Both PRs are focused on exposing skills as executable commands with autocomplete support. This could be a duplicate or closely related work that may need coordination to avoid conflicts. |
rothnic
commented
Jan 21, 2026
I was thinking about this after getting confused between native opencode and oh my opencode. Seems there are some other PRs though and not sure if /tools is covered, which i think would be useful as well. #9819 |
f1ae801 to
08fa7f7CompareClosing this pull request because it has had no updates for more than 60 days. If you plan to continue working on it, feel free to reopen or open a new PR. |
Summary
What does this PR do?
Allows users to invoke skills directly via slash commands (e.g.,
/my-skill) instead of manually calling the skill tool. When a skill command is invoked, it automatically loads the skill and follows its instructions.Before: Users had to know about the skill tool and call it manually
After: Skills appear in autocomplete with
(Skill)suffix and can be invoked like any other commandHow did you verify your code works?
.opencode/skill/directory(Skill)suffix/skill-nameinvocation triggers the skill tool and shows "Loaded skill: X" in UI/skill-name some argumentspasses arguments correctly