deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:guo6x/dsh-pilot
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
中文说明 · DeepSeek Harness plugin
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.
dsh plugin --profile web add github:guo6x/dsh-pilotdsh 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.

| Tool | What it does |
|---|---|
pilot_open |
Open a URL (launches the browser on first use), return title/URL/text snapshot |
pilot_snapshot |
Read 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_diff |
Report 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_click |
Click an element by its snapshot ref (or CSS selector); scrolls into view first |
pilot_type |
Type into an input by its snapshot ref (or selector) via the native value setter — React/Vue forms observe it |
pilot_press |
Press a key (Enter/Tab/Escape/arrows/single chars) |
pilot_back |
Go back in history, waits for the page to settle, returns URL/title |
pilot_reload |
Reload the current page, waits for it to settle |
pilot_wait |
Wait N ms (1–30000) for async content before the next action |
pilot_screenshot |
Save a PNG and return its path (for vision-capable models or the human) |
pilot_download |
Download a resource (default: current page) through the page's own fetch — inherits session cookies; cap 20 MB |
pilot_eval |
Evaluate JS in the page, get JSON back |
pilot_close |
Stop 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.
A draggable cockpit overlay: live screenshot (2 s refresh), current URL + title, 启动/关闭 buttons, an address bar, the recent action log, and a session indicator when several sessions are browsing. Everything the agent does is visible; close the browser or take over whenever you like.
DSH chat ──pilot_* tools──▶ host plugin ──CDP (native WebSocket)──▶ headless Edge/Chrome
▲ │
└── structured text snapshots ◀┘
GUI cockpit ◀──/dsh-pilot/state + /dsh-pilot/shot.png (loopback)──┘
msedge/chrome headless with an isolated --user-data-dir under the OS temp dir and a dynamically picked debugging port (9222+); the whole tree is killed and the profile removed on stop./dsh-pilot/*, 403 for non-loopback clients).sidebar.footer.action + shell.overlay.pilot_open accepts http(s) URLs only; pilot_eval runs page-context JS (same trust as opening DevTools yourself — do not point the agent at pages you don't trust).pnpm install
node build.mjs # esbuild → lib/index.js (host ESM) + lib/client.js (ModuleLoader bundle)
node tests/smoke.mjs # real-headless-Edge end-to-end smoke test
MIT licensed. Found a bug or an idea? Open an issue.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。