Feature hasn't been suggested before.
Describe the enhancement you want to request
Claude Code supports a disable-model-invocation: true frontmatter field in SKILL.md files that prevents skills from being loaded into the model's context while still allowing users to invoke them via slash commands.
Currently, OpenCode appears to ignore this field. Skills with disable-model-invocation: true are still visible to the model.
Steps to reproduce:
- Create a skill with
disable-model-invocation: true in the frontmatter
- Start a new OpenCode chat
- Ask the model what skills it has access to
- Observe that the skill appears in the list, even though it shouldn't be visible to the model
Use case
When working with many skills (either project-specific or in a global user config), loading all skill names and descriptions into every chat consumes context unnecessarily. Some skills are better suited for direct user invocation rather than model discovery—for example, utility scripts or workflows that the user knows when to trigger.
Supporting disable-model-invocation would allow users to retain access to these skills via /skill-name while keeping the model's context cleaner.
Note on scope
I understand this is a Claude Code-specific feature, and OpenCode isn't aiming for full feature parity. If this falls outside the project's goals, that's completely understandable—just wanted to surface the use case in case it aligns with the direction you're heading.
Feature hasn't been suggested before.
Describe the enhancement you want to request
Claude Code supports a
disable-model-invocation: truefrontmatter field in SKILL.md files that prevents skills from being loaded into the model's context while still allowing users to invoke them via slash commands.Currently, OpenCode appears to ignore this field. Skills with
disable-model-invocation: trueare still visible to the model.Steps to reproduce:
disable-model-invocation: truein the frontmatterUse case
When working with many skills (either project-specific or in a global user config), loading all skill names and descriptions into every chat consumes context unnecessarily. Some skills are better suited for direct user invocation rather than model discovery—for example, utility scripts or workflows that the user knows when to trigger.
Supporting
disable-model-invocationwould allow users to retain access to these skills via/skill-namewhile keeping the model's context cleaner.Note on scope
I understand this is a Claude Code-specific feature, and OpenCode isn't aiming for full feature parity. If this falls outside the project's goals, that's completely understandable—just wanted to surface the use case in case it aligns with the direction you're heading.