deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:JeremyGuo/dsh-playwright
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
Use a real browser together with your DeepSeek Harness AI. You and the model share one isolated Playwright page per DSH session: you watch and interact in the Browser Use panel while the model reads, sees, clicks, types, and navigates the same live page.

The Browser Use panel and the model tools operate on the same page state.
down, one or more move actions, then up with the same mouse button.Enter, ArrowUp, Control+A, or Meta+K; hold a game key with down and release it with up.browser_navigateOpen a URL and return a semantic snapshot.
{"url":"https://example.com"}
browser_snapshotReturn bounded page text plus ids such as e1. Ids are valid only for that snapshot; take another snapshot after navigation or dynamic UI changes.
browser_clickThe default is a left click. Target either element_id or both x and y.
{"element_id":"e1"}
{"action":"click","button":"right","x":640,"y":400}
Move without clicking:
{"action":"move","x":640,"y":400,"steps":20}
Drag:
{"action":"down","button":"left","x":200,"y":200}
{"action":"move","x":600,"y":400,"steps":30}
{"action":"up","button":"left","x":600,"y":400}
Supported buttons: left, right, middle. Supported actions: click, down, move, up.
browser_typeReplace the value of a visible editable element and optionally submit with Enter.
{"element_id":"e3","text":"DeepSeek Harness","submit":true}
browser_keyboardSimulate keyboard events on the current focus or focus one element first.
{"action":"type","value":"hello","element_id":"e3","delay_ms":50}
{"action":"press","value":"Control+A"}
{"action":"down","value":"ArrowRight"}
{"action":"up","value":"ArrowRight"}
Supported actions: type, press, down, up.
browser_screenshotReturn a PNG through DSH's native attachment and image-block pipeline. A model route must declare image input.
Optionally mark the last click without modifying the page DOM:
{
"show_last_click": true,
"marker_r": 0,
"marker_g": 255,
"marker_b": 0,
"marker_size": 60
}
RGB channels are integers from 0 to 255. show_last_click is optional and defaults to false.
0.1.0-rc.6.^22.19.0 or >=24.0.0.browser_screenshot.After publication:
dsh plugin --profile web add dsh-playwright
dsh web --port 3081
For local development:
pnpm install
pnpm run verify
dsh plugin --profile web add link:/absolute/path/to/dsh-playwright
dsh web --port 3081
Use the Browser Use button on the right edge to open or close the panel. Drag its left divider to change the Browser Use share from 10% to 80%. Above 55%, the plugin collapses DSH's left Workspace/session selector while preserving the conversation; below 48%, it restores only a selector it collapsed itself.
For a configured llm-pi-ai route, declare image input:
llm-pi-ai:
providers:
my-provider:
models:
- id: my-vision-model
name: My Vision Model
input:
- text
- image
Declaring image input is a claim about the endpoint. The provider rejects the request if the endpoint does not actually accept images.
browserExecutablePath: explicit Chrome/Chromium executable; omitted uses common macOS/Linux locations.viewportWidth / viewportHeight: shared page viewport.navigationTimeoutMs: Playwright operation timeout.actionSettleMs: delay before returning post-action state.screencastQuality: CDP screencast JPEG quality from 30 to 90; default 60.maxSnapshotChars / maxSnapshotElements: semantic snapshot bounds.allowPrivateHosts: permits localhost/private-network targets when true; default false.The RPC and screencast endpoints accept loopback same-origin clients only. HTTP(S) requests to localhost, literal private addresses, and hostnames resolving to private addresses are blocked by default, including subresources. Enable allowPrivateHosts only for trusted tasks.
The plugin launches Chrome lazily. Each DSH session receives a separate BrowserContext and Page. On teardown, queued actions settle before Chrome closes. If Chrome exits unexpectedly, the next operation launches a replacement browser and restores affected sessions to their last top-level URL.
Browser sessions do not reuse the user's Chrome profile, cookies, or login state. Popups and downloads are not exposed. Private-host blocking is a network guard, not a complete sandbox for untrusted websites.
Semantic tools return bounded text into durable tool results. browser_screenshot stores its PNG through DSH attachments and returns a native image block, so it is available only to a route that declares image input. The prompt contribution teaches the model to refresh stale element ids, use screenshot coordinates for canvas pages, release held mouse/keyboard inputs, and request a marked screenshot when it needs to verify a click.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。