Hermes Agent Deep Cuts: Three Gates Between `plugins install` and a Tool the Model Can Call
On this box, `hermes plugins list` prints more than eighty entries and every one says `not enabled` — while browser automation, image gen, kanban, and the memory provider all work. The path from `hermes plugins install` to a tool the model can actually call runs through three separate gates: the `plugins.enabled` load gate, the capability-consent surface, and the per-platform toolset filter (`_DEFAULT_OFF_TOOLSETS`, `known_plugin_toolsets`). Verified on v0.20.1: 37 hook names in VALID_HOOKS, the consent model that is explicitly 'NOT a sandbox' and fails closed, pinned-SHA installs that reject tags and branches, `hermes plugins doctor` catching declared-vs-registered drift, plugin packs that never bulk-grant consent, and the gotcha where you enable spotify, restart, and no spotify tools appear because the toolset is still off.