⚠️ This repository has been renamed: lychee888/galvanize-dsh — click to visit the new location. Everything below is preserved as originally indexed.
Install verification: sandbox install ok, web smoke failed (L5) · tested on dsh 0.2.0-rc.2 · last checked Install verification details →
What it doesAI
Triggers DSH agent sessions on file, mail, webhook, or git events; native Cordis bundle with heartbeat-proved install.
- Triggers on file, mail, webhook, and git events
- Native Cordis bundle for DSH plugins
- Heartbeat-proved install mechanism
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 github:jarvis959/galvanize-dsh#v0.1.6Install method: GitHub · sandbox install ok, web smoke failed (L5) · verified on dsh 0.2.0-rc.2
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
Based on 1 requirement(s) across 1 @deepseek-ai/dsh-* packages. raw ranges
^0.1.1-rc.2 ×1
✗ Running dsh 0.2.1-rc.2 is outside the declared range — the official install gate rejects it (incompatible-version).
To force-install, grant an exact-version exemption: dsh plugin allow-version galvanize-dsh@0.1.6 0.2.1-rc.2 (the exemption lives in the local profile; this site does not assume one)
Whether it actually runs is a separate question → see the measured matrix below (L1–L5).
| plugin \ dsh | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 | dsh 0.1.7-rc.2 | dsh 0.1.7-rc.1 | dsh 0.1.6-alpha.2 |
|---|---|---|---|---|---|
| v0.1.6 | ✗ | ✗ | ✗ | · | ✗ |
v0.1.6github8 failed2026-10-09
https://github.com/jarvis959/galvanize-dsh
✗dsh 0.2.0-rc.22026-10-09L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.2.0-rc.2 · profile: l4-sandbox
Issued: 2026-10-09 · expires: 2026-10-16
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.2.0-rc.12026-09-30L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.2.0-rc.1 · profile: l4-sandbox
Issued: 2026-09-30 · expires: 2026-10-07
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.1.7-rc.22026-09-26L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.1.7-rc.2 · profile: l4-sandbox
Issued: 2026-09-26 · expires: 2026-10-03
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.1.6-alpha.22026-09-20L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.1.6-alpha.2 · profile: l4-sandbox
Issued: 2026-09-20 · expires: 2026-09-27
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.1.6-alpha.12026-09-17L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.1.6-alpha.1 · profile: l4-sandbox
Issued: 2026-09-17 · expires: 2026-09-24
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.1.5-rc.22026-09-11L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.1.5-rc.2 · profile: l4-sandbox
Issued: 2026-09-11 · expires: 2026-09-18
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗dsh 0.1.3-alpha.22026-09-09L5 · failed
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dsh0.1.3-alpha.2 · profile: l3-fullscan
Issued: 2026-09-09 · expires: 2026-09-16
View checks & evidence
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✗prehistory2026-10-04L5 · failed
- • Node.js: v24.14.0
- • DSH: unknown
- • Plugin artifact: github · https://github.com/jarvis959/galvanize-dsh#v0.1.6
ID: galvanize-dsh@v0.1.6@dshunknown · profile: l4-sandbox
Issued: 2026-10-04 · expires: 2026-10-11
View checks & evidence
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/galvanize-dsh/)`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 medium (authoritative when present) → overall medium.
v0.1.6dsh manifestv0.1.6git2026-10-08v0.1.6same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (5)
- warningchildProcess · code-exec
src/cli.ts:88const r = spawnSync('npm', ['pack', '--pack-destination', outDir, src], { - warningchildProcess · code-exec
src/cli.ts:123const probe = spawnSync('dsh', ['--version'], { shell: process.platform === 'win32', timeout: 15_000, encoding: 'utf8' }) - warningchildProcess · code-exec
src/cli.ts:148const r = spawnSync(dsh.cmd, [...dsh.args, ...argv], { - warningnetIp · network
src/core-client.ts:78const res = await fetch(`http://127.0.0.1:${port}/version`, { signal: AbortSignal.timeout(timeoutMs) }) - warningnetIp · network
src/core-client.ts:121const res = await fetch(`http://127.0.0.1:${info.port}/manage/${encodeURIComponent(op)}`, {
show 2 audit findings
- mediumtrigger_add lets the model install a shell-command wake executed by the core on every event
src/index.ts:151The trigger tool accepts an arbitrary command template (wake='shell' plus command, also reachable via the default dsh preset path) with no confirmation or allowlist and forwards it to the local core, which runs it as a shell spawn for every matching event. A prompt-injected or malicious model turn can therefore persist arbitrary code execution on the host beyond the session.
- lowspawnSync with shell:true on Windows joins unescaped args in the installer
src/cli.ts:91On Windows Node concatenates file+args into a single shell string without quoting, so a GALVANIZE_HOME, --source, or --profile value containing shell metacharacters (or even spaces) would be misinterpreted by cmd.exe. Reachable only through the installer with values the invoker supplies, so real impact is limited to broken paths or self-inflicted input rather than an attacker-controlled vector.
Thin loopback client plus installer; no exfiltration, but trigger_add lets a (possibly prompt-injected) model install a shell-command wake executed by the core on every event.
Rule (2026-10-24): when a dynamic conclusion exists it is authoritative (it may raise or lower the level); without one, the static/vet fused tier applies. The audit never writes the exemption list (exemptions are manual only); a wrong conclusion is withdrawn by human review and the tier falls back to static/vet.
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-09-30 · activity: Active
• Repo created: 2026-08-28
• Stars: ★ 0 · 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).
