Install verification: sandbox install ok, web smoke failed (L5) · tested on dsh 0.2.1-rc.2 · last checked Install verification details →
What it doesAI
Adds a Hermes panel to the DSH sidebar for gateway and dashboard control, a built-in Hermes health report, and a DSH-Hermes bridge.
- Sidebar panel to control the Hermes gateway and dashboard
- Built-in Hermes health report inside DSH
- Bridge connecting DSH with Hermes
Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.
Installation
dsh plugin --profile web add @yang3333/dsh-hermes-panelInstall method: npm · sandbox install ok, web smoke failed (L5)
Verification & Compatibility
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
○ The author declares no dsh version requirement — install is not blocked by version.
| plugin \ dsh | dsh 0.2.1-rc.2 current | dsh 0.2.1-alpha.4 |
|---|---|---|
| 1.1.0-rc.5 | · | · |
| 1.1.0-rc.2 | ✗ | ✗ |
1.1.0-rc.5npm2026-10-21
@yang3333/dsh-hermes-panel
No runtime install test for this version (static scan only) — compatibility unknown, never assumed.
1.1.0-rc.2npm2 failed2026-10-20
@yang3333/dsh-hermes-panel
✗dsh 0.2.1-rc.2current2026-10-20L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: npm · @yang3333/dsh-hermes-panel@1.1.0-rc.2
ID: dsh-hermes-panel@1.1.0-rc.2@dsh0.2.1-rc.2 · profile: l4-sandbox
Issued: 2026-10-20 · expires: 2026-10-27
View checks & evidence
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.2.1-alpha.42026-10-18L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • Plugin artifact: npm · @yang3333/dsh-hermes-panel@1.1.0-rc.2
ID: dsh-hermes-panel@1.1.0-rc.2@dsh0.2.1-alpha.4 · profile: l3-fullscan
Issued: 2026-10-18 · expires: 2026-10-25
View checks & evidence
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
↳ carried from earlier record dsh-hermes-panel@1.1.0-rc.5@dsh0.2.1-rc.2 (l3-fullscan)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
Only the latest 3 published versions are shown; source-snapshot (commit hash) groups, unstated groups and older versions are omitted — the full archive stays in the data layer (snapshot/unstated groups appear only when a plugin has no published version).
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-hermes-panel/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low, dynamic low — stricter wins → overall low.
v1.1.0-rc.5dsh manifest1.1.0-rc.5npm2026-10-211.1.0-rc.5same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (12)
- warningchildProcess · code-exec
verify/bridge-render.mjs:60const probe = spawnSync(candidate[0], [...candidate.slice(1), '-c', 'import sys; print(sys.version_info[0])'], { - warningchildProcess · code-exec
verify/bridge-render.mjs:78const run = spawnSync(python[0], [...python.slice(1), SCRIPT, '--selftest'], { - warningchildProcess · code-exec
verify/bridge-server.mjs:51const probe = spawnSync(candidate[0], [...candidate.slice(1), '-c', 'import sys; print(sys.version_info[0])'], { - warningchildProcess · code-exec
verify/bridge-server.mjs:62const run = spawnSync(python[0], [...python.slice(1), '-c', body], { - warningchildProcess · code-exec
verify/bridge-server.mjs:82const run = spawnSync(python[0], [...python.slice(1), SERVER, '--selftest'], { - warningchildProcess · code-exec
verify/health-e2e.mjs:49spawn(spec) { - warningchildProcess · code-exec
verify/health-e2e.mjs:50const child = spawn(spec.argv[0], spec.argv.slice(1), { - warningnetIp · network
verify/host-csrf.mjs:166origin: 'http://127.0.0.1:3080', - warningnetIp · network
verify/host-csrf.mjs:173const mismatch = await request('/hermes/api/status', { origin: 'http://127.0.0.1:9999' }); - warningchildProcess · code-exec
verify/stop-foreign.mjs:44spawn(spec) { - warningchildProcess · code-exec
verify/stop-foreign.mjs:45const child = spawn(spec.argv[0], spec.argv.slice(1), { - warningchildProcess · code-exec
verify/stop-foreign.mjs:169const foreign = spawn(
show 1 audit findings
- lowManifest-declared runtime entry points (index.js, client.js, dsh_mcp_server.py) are absent from the reviewed set, so the spawn/route surface is unverified
package.json:29The files that actually register /hermes/api/* routes, spawn hermes.exe/node, and build the dsh argv are not in the audited set; their correctness is only asserted by the tests shipped next to them (verify/host-csrf.mjs, verify/concurrency.mjs, verify/bridge-server.mjs), which a reviewer cannot independently confirm. No concrete exploit is demonstrated, but the highest-risk code was not examined.
Reviewed set contains only the test harness, manifest and a stdlib-only renderer; no critical/high/medium issue found, but the plugin's real runtime files were not harvested.
Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-10-20 · activity: Active
• Repo created: 2026-10-15
• Stars: ★ 1 · Forks: 0
• Health: Active — committed within last 30 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
