Skip to content

Allow disabling one plugin's hooks without disabling the plugin #4958

Description

Please let me disable one plugin's hooks without disabling its skills, agents, or MCP servers.

Why

I run several third-party plugins and want to keep using one plugin's skills. I also want to vet or replace its sessionStart hook without losing those skills.

  • Two plugins can inject context at sessionStart, but I want one owner for that context.
  • A plugin update can change a hook, and I want to hold that hook until I review it.

Today

  • disableAllHooks: true skips hooks from every source, including every plugin.
  • copilot plugin disable NAME disables the whole plugin. Its help offers no per-component option.

The only workaround is to patch the plugin's hook manifest locally. That patch drifts or gets overwritten when the plugin updates.

Proposal

A per-plugin hook toggle could leave the plugin's other parts active. Either of these shapes might work:

  • A config entry such as "pluginHooks": { "<plugin>": false }.
  • A flag such as copilot plugin disable NAME --hooks-only.

Since 1.0.60 (#3871), /env lists hooks by plugin. Please show their disabled state there.

Related

#3697 asks to disable repository hooks for security. This request covers plugin hooks while preserving the plugin's other parts.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions