What it does
Give your DSH agent hands: drive a real browser (Edge/Chrome over CDP) from the chat — ref-driven clicking, per-session browsers, and a live cockpit panel. Zero runtime deps, no API key.
Installation
dsh plugin --profile web add github:guo6x/dsh-pilotInstall method: GitHub · 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 ×20.4.1dsh manifest36b09fb791742026-08-1736b09fb79174The 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 (5 files)
• Dependency vulnerabilities: requires deep audit (L3+)
• Permission sandboxing: requires runtime testing (L4+)
Scan findings · 12
- warningHTTP request to a raw IP addressdemo/record-demo.mjs:43await gui.navigate('http://127.0.0.1:3080/')
- infoHardcoded IP addressdemo/record-demo.mjs:43await gui.navigate('http://127.0.0.1:3080/')
- criticalChild process module usage (Node.js)prototype/cdp-probe.mjs:4import { spawn } from 'node:child_process'
- warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:30const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:108const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:120const tab = await (await fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent('https://example.com')}`, { method: 'PUT' })).json()
- infoMakes network requests (fetch / axios)prototype/cdp-probe.mjs:30const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- infoMakes network requests (fetch / axios)prototype/cdp-probe.mjs:43this.ws = new WebSocket(wsUrl)
- infoMakes network requests (fetch / axios)prototype/cdp-probe.mjs:108const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- infoHardcoded IP addressprototype/cdp-probe.mjs:30const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- infoHardcoded IP addressprototype/cdp-probe.mjs:108const res = await fetch(`http://127.0.0.1:${port}/json/version`)
- infoHardcoded IP addressprototype/cdp-probe.mjs:120const tab = await (await fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent('https://example.com')}`, { method: 'PUT' })).json()
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
Source
GitHub: github.com/guo6x/dsh-pilot
