Skip to content

[FEATURE]: Add Skill Configuration to Config Type #6013

Closed

Description

@wch-abc

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Request to add skill configuration support to the Config type, similar to existing agent, command, mcp, and plugin configurations. This would enable skill management through config hooks and provide better extensibility.

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Dec 23, 2025
  2. github-actions commented on Dec 23, 2025

    @github-actions
    Contributor

    Related discussion: This feature request follows a similar pattern to #4393 which requests configuration support for plugins. You might want to check that issue to understand the broader context of adding configuration support to different extensibility types in the Config type.

  3. kvnwolf commented on Jan 16, 2026

    @kvnwolf

    +1 on this. This is the right approach.

    Currently plugins can export tool, but not skill. The inconsistency is frustrating when you want to distribute a complete package (skill + supporting tools + hooks).

    Related issues:

    Both of those would be unnecessary if we just add skill to the plugin return type:

    export const MyPlugin: Plugin = async (ctx) => {
      return {
        skill: {
          "my-skill":  skill({ ... })
        },
      }
    }

    This keeps the plugin system as the single distribution mechanism for all OpenCode extensions, which is much cleaner than having separate systems for tools vs skills vs commands.

    Any updates on this? Would love to see it prioritized.

  4. super-unique-ai commented on Jan 17, 2026

    @super-unique-ai

    +1 on this. This is the right approach.

    Currently plugins can export tool, but not skill. The inconsistency is frustrating when you want to distribute a complete package (skill + supporting tools + hooks).

    Related issues:

    Both of those would be unnecessary if we just add skill to the plugin return type:

    export const MyPlugin: Plugin = async (ctx) => {
    return {
    skill: {
    "my-skill": skill({ ... })
    },
    }
    }
    This keeps the plugin system as the single distribution mechanism for all OpenCode extensions, which is much cleaner than having separate systems for tools vs skills vs commands.

    Any updates on this? Would love to see it prioritized.

    I Support!

  5. kvnwolf commented on Jan 17, 2026

    @kvnwolf

    +1 on this. This is the right approach.

    Currently plugins can export tool, but not skill. The inconsistency is frustrating when you want to distribute a complete package (skill + supporting tools + hooks).

    Related issues:

    Both of those would be unnecessary if we just add skill to the plugin return type:

    export const MyPlugin: Plugin = async (ctx) => {
    return {
    skill: {
    "my-skill": skill({ ... })
    },
    }
    }
    This keeps the plugin system as the single distribution mechanism for all OpenCode extensions, which is much cleaner than having separate systems for tools vs skills vs commands.

    Any updates on this? Would love to see it prioritized.

    @thdxr, do you have any thoughts on this proposal?

  6. kvnwolf commented on Jan 17, 2026

    @kvnwolf

    I've opened a PR that implements this: #9010

    Instead of a programmatic skill() builder, the implementation uses an array of paths (with glob support):

    export const MyPlugin: Plugin = async () => ({
      skill: ['./skills/pdf', './skills/docs/*']
    })

    This approach is simpler and lets plugins bundle existing SKILL.md files without requiring changes to the skill format. Paths are relative to the plugin file.

    Would love feedback from the community!

  7. thdxr commented on Mar 25, 2026

    @thdxr
    Member

    To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

discussionUsed for feature requests, proposals, ideas, etc. Open discussion

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions