[FEATURE] Model-conditional configuration: enable plugins/hooks/skills per model

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 30, 2026

Use case

Users who run different models in the same projects want different tool stacks per model, e.g.:

  • On smaller/faster models: a token-thrift stack — output-filtering PreToolUse hooks (e.g. rtk), context-offloading plugins, output-compression skills.
  • On frontier models (Fable/Opus): those plugins/hooks disabled, since aggressive output trimming and read-avoidance measurably reduce the depth of exploration the stronger model is being paid for.

What exists today (as of 2026-08-30)

  • enabledPlugins accepts booleans/version constraints per settings scope (user/project/local) — no conditions.
  • Hook if filters use permission-rule syntax (tool/command patterns) — cannot match the active model.
  • modelSettings.<model> supports only effortLevel.
  • PreModelSwitch/PostModelSwitch hooks can react to a switch but cannot enable/disable plugins (loaded at session start).

So "thrift stack on Haiku, full depth on Fable" is not expressible; the closest approximation is separate --settings profiles, which is manual and unavailable per-session in the VSCode extension.

Proposal (any of these shapes would work)

  1. Extend modelSettings.<model> with enabledPlugins / skillOverrides / disableAllHooks overrides, applied at session start and on model switch (for hooks/skills; plugin changes could apply next session).
  2. Or: let hook if filters match the model (e.g. if: "model:claude-fable-*").
  3. Or: profile auto-selection — modelSettings.<model>.settingsProfile pointing at a settings file.

🤖 Generated with Claude Code

View original on GitHub ↗