[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)
enabledPluginsaccepts booleans/version constraints per settings scope (user/project/local) — no conditions.- Hook
iffilters use permission-rule syntax (tool/command patterns) — cannot match the active model. modelSettings.<model>supports onlyeffortLevel.PreModelSwitch/PostModelSwitchhooks 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)
- Extend
modelSettings.<model>withenabledPlugins/skillOverrides/disableAllHooksoverrides, applied at session start and on model switch (for hooks/skills; plugin changes could apply next session). - Or: let hook
iffilters match the model (e.g.if: "model:claude-fable-*"). - Or: profile auto-selection —
modelSettings.<model>.settingsProfilepointing at a settings file.
🤖 Generated with Claude Code