DSH Hub
dsh-pilot cover

guo6x/dsh-pilot

dsh-pilot

UIWeb UI9 GitHub stars· updated 2026-08-18

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.

Install

npx @deepseek-ai/dsh plugin --profile web add github:guo6x/dsh-pilot`

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-pilot DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-pilot.svg)](https://dshhub.dev/plugins/dsh-pilot)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from guo6x/dsh-pilot, cleaned of badges and images.

🛩️ dsh-pilot — give your DSH agent hands

Drive a real browser from the DeepSeek Harness chat: the agent opens pages, reads them as structured text with a numbered element list, clicks and types by ref (no CSS guessing), presses keys, navigates back/reload, waits, evaluates JS, and takes screenshots — while you watch a live draggable cockpit panel in the Web GUI and can take over at any time.

  • 🚀 One command installdsh plugin --profile web add github:guo6x/dsh-pilot
  • Zero runtime dependencies — talks CDP over the native Node ≥ 22 WebSocket, uses the Edge/Chrome already on your machine
  • 🔑 No API key — nothing leaves your machine; no vision model required
  • 📖 Text-first by design — the agent reads DOM snapshots (title/URL/text/links + numbered elements), so text-only models browse without burning vision tokens
  • 🎯 Ref-driven interaction — every click/type targets a snapshot ref, not a guessed selector; stale refs fail loudly with a hint
  • 🧭 Full navigation set — back, reload, and wait tools for real browsing flows, with page-settling waits built in
  • 👀 Human in the loop — live screenshot, URL bar, action log, and a session indicator in the cockpit; you see everything the agent does
  • 🧩 Per-session isolation — every agent session gets its own browser instance; parallel sessions never fight over one page

Install

dsh plugin --profile web add dsh-pilot
# or straight from GitHub (same code, pinned to a commit):
# dsh plugin --profile web add github:guo6x/dsh-pilot

Restart dsh web, refresh the page. A ✈️ button appears at the sidebar foot — that opens the cockpit.

Requirements: DeepSeek Harness web profile, Node ≥ 22, and Edge or Chrome installed.

What the agent gets

ToolWhat it does
pilot_openOpen a URL (launches the browser on first use), return title/URL/text snapshot
pilot_snapshotRead the current page as text: title, URL, visible text (8k chars), links, a numbered element list (refs), and a change summary vs the previous snapshot
pilot_diffReport ONLY what changed since the last snapshot (URL/title/text delta, elements added/removed) — judge whether an action worked without re-reading the page
pilot_clickClick an element by its snapshot ref (or CSS selector); scrolls into view first
pilot_typeType into an input by its snapshot ref (or selector) via the native value setter — React/Vue forms observe it
pilot_pressPress a key (Enter/Tab/Escape/arrows/single chars)
pilot_backGo back in history, waits for the page to settle, returns URL/title
pilot_reloadReload the current page, waits for it to settle
pilot_waitWait N ms (1–30000) for async content before the next action
pilot_screenshotSave a PNG and return its path (for vision-capable models or the human)
pilot_downloadDownload a resource (default: current page) through the page's own fetch — inherits session cookies; cap 20 MB
pilot_evalEvaluate JS in the page, get JSON back
pilot_closeStop the browser; the next call relaunches it

The agent just says what it needs: "open the login page, fill the form, click submit, and read the result" — the tools are the same verbs.

What the human gets

Related plugins