Files
hermes-agent/apps/desktop/src/plugins
teknium1 09b74dea64 fix(desktop): one IME-aware Enter helper for plugins too; guard the sites main added since
- The Kanban plugin cannot import `@/lib/ime` (plugin fence), so its
  `./ime-enter` twin duplicated the predicate. Export `isSubmitEnter` from
  `@hermes/plugin-sdk` and drop the twin so one helper owns the policy.
- `BoardNameField` in kanban/board-switcher.tsx (main's refactor of the
  create/rename board dialogs) submitted on composition Enter; guarded.
- Telegram allowed-ID input and the clarify-card textarea submitted on the
  post-compositionend keyCode-229 Enter; both now use `isSubmitEnter`.
2026-09-13 21:10:27 -07:00
..

Bundled plugins

Drop a <name>/plugin.{ts,tsx} here that default-exports a HermesPlugin and it registers automatically at boot (vite glob in ../contrib/plugins.ts), with the same inventory + live enable/disable contract as runtime plugins.

Keep this tree for real shipped plugins (and the small authoring fixtures that dogfood the SDK). One-off demos that rebuild a core chrome piece 1:1 do not belong here — they double the UI and confuse Capabilities ▸ Plugins. Publish those in the companion hermes-example-plugins repo instead.

User- and agent-authored plugins load at runtime from $HERMES_HOME/desktop-plugins/<name>/plugin.js (the disk door) — see the hermes-desktop-plugins skill.