What it does
Bottom terminal panel plugin for DeepSeek Harness (DSH Web GUI)
Installation
dsh plugin --profile web add dsh-plugin-terminal-2Install method: npm · not yet tested in container (L3+)
Compatibility
| DSH Version | Status |
|---|---|
| not stated | Declared — not tested |
Requirements
- • Node.js: not stated
- • DSH: declared "not stated"
- • External credentials: none detected
Security Report
Automated static scan, not manual review.
Critical findings in non-blocking categories (dynamic code execution, shell execution, install scripts, obfuscation). Common in CLI/terminal plugins but worth reviewing.
code-exec ×1shell ×143300ec899662026-08-1743300ec89966The scan result is only valid for the scanned commit. If the latest commit differs, the badge shows outdated until the daily pipeline rescans.
Disclaimer: automated static analysis, not a security guarantee. Always review what you install.
• Static heuristic scan: done (4 files)
• Dependency vulnerabilities: requires deep audit (L3+)
• Permission sandboxing: requires runtime testing (L4+)
Scan findings · 9
- criticalChild process module usage (Node.js)lib/index.js:13import { execSync } from 'node:child_process'
- criticalShell command execution (exec / execSync)lib/index.js:99execSync(`where ${candidate}`, { shell: 'cmd.exe', stdio: 'ignore' })
- infoReads process.envlib/index.js:31export function buildSessionEnv(base = process.env) {
- infoReads process.envlib/index.js:96if (process.platform !== 'win32') return process.env.SHELL || '/bin/bash'
- infoReads process.envlib/index.js:130const DATA_DIR = process.env.DSH_PLUGIN_TERMINAL_DATA ?? pathJoin(process.env.DSH_HOME ?? pathJoin(homedir(), '.dsh'), 'plugin-data', 'termi
- infoUses localStoragesrc/client-main.js:303const saved = Number(localStorage.getItem(HEIGHT_KEY));
- infoUses localStoragesrc/client-main.js:496localStorage.setItem(HEIGHT_KEY, String(heightRef.current));
- infoMakes network requests (fetch / axios)src/client-main.js:74const res = await fetch(PREFIX + path, opts);
- infoMakes network requests (fetch / axios)src/client-main.js:197const ws = new WebSocket(proto + "//" + location.host + PREFIX + "/ws/" + tab.id);
Heuristic static scan — may produce false positives. Review the source yourself before trusting.
Activity
Last commit 2026-08-17 · activity: Active
• Repo created: 2026-08-17
• Stars: ★ 4 · Forks: 0
• Health: Active — committed within last 30 days
