New request
#2623: feat: WebUI dashboard plugin system — embed plugin pages inline
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Issue
enhancement
Problem
Hermes WebUI supports lifecycle-hook plugins in Settings → Plugins, but dashboard plugins (e.g. NIC Branch Sync, Session Review) that ship their own UI under ~/.hermes/plugins/<name>/dashboard/ have no way to be rendered within the WebUI. Users must navigate to plugin pages manually or use separate browser tabs.
Proposed Solution
Add a dashboard plugin discovery and rendering system:
- Discovery — Scan
~/.hermes/plugins/<name>/dashboard/manifest.jsonat startup - Serving — Route plugin static assets (
/plugins/,/dashboard-plugins/) with path-traversal protection - Rendering — Open plugin pages in an isolated iframe within the main content area, triggered by an "Open" button on plugin cards in Settings → Plugins
- Isolation — Use iframes so plugin CSS/JS/modals do not affect the main WebUI
Plugin page serve order
dashboard/dist/index.html(full SPA build)static/index.html(content page)- Auto-generated IIFE shell (fallback)
Tradeoffs
- Iframe same-origin: plugins are locally-installed, trust model similar to VS Code extensions. No untrusted plugin marketplace support.
- No build step: plugin pages are served as-is from the filesystem, preserving the no-bundler architecture.
Implementation
PR #2622 implements this feature.
Assessmentadvisory
feature●●● hard90% confidence
New dashboard plugin discovery, routing, and iframe rendering system spanning API and frontend.
Likely files
- api/plugin_dashboard.py
- static/plugin-manager.js
- static/index.html
- api/routes.py
- api/plugin_scanner.py
Create the request