dsh-pilot avatar

dsh-pilot

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.

PluginBrowserNetworkStorageWeb search
Verification
L2 · Structured
Security
High
Health
Active
Trust
Silver

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-pilot

Install method: GitHub · not yet tested in container (L3+)

Compatibility

DSH VersionStatus
not statedDeclared — not tested

Requirements

  • • Node.js: not stated
  • • DSH: declared "not stated"
  • • External credentials: none detected

Security Report

Automated static scan, not manual review.

DSH.SOHIGH-RISKSCAN5 FILES
36b09f
Automated review · daily
HIGH-RISK

Critical findings in non-blocking categories (dynamic code execution, shell execution, install scripts, obfuscation). Common in CLI/terminal plugins but worth reviewing.

2 critical·7 warning·13 info·5 files scanned
code-exec ×2
plugin version0.4.1dsh manifest
scanned commit36b09fb791742026-08-17
latest commit36b09fb79174

The 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.

Risk: High2 critical · 7 warning · 13 info

• 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:43
    await gui.navigate('http://127.0.0.1:3080/')
  • infoHardcoded IP addressdemo/record-demo.mjs:43
    await gui.navigate('http://127.0.0.1:3080/')
  • criticalChild process module usage (Node.js)prototype/cdp-probe.mjs:4
    import { spawn } from 'node:child_process'
  • warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:30
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:108
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • warningHTTP request to a raw IP addressprototype/cdp-probe.mjs:120
    const 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:30
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • infoMakes network requests (fetch / axios)prototype/cdp-probe.mjs:43
    this.ws = new WebSocket(wsUrl)
  • infoMakes network requests (fetch / axios)prototype/cdp-probe.mjs:108
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • infoHardcoded IP addressprototype/cdp-probe.mjs:30
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • infoHardcoded IP addressprototype/cdp-probe.mjs:108
    const res = await fetch(`http://127.0.0.1:${port}/json/version`)
  • infoHardcoded IP addressprototype/cdp-probe.mjs:120
    const 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

Was this page helpful?