deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Persistent Playwright browser tools and an interactive browser panel for DeepSeek Harness.
The plugin keeps one Chromium profile across turns, shares login state between tabs, lets agents operate pages through stable snapshot references, and provides a live browser view where a human can watch without interrupting the agent or explicitly take control when needed.
0.1.5-rc.2 (the dependencies and development fixtures target this exact release).dsh plugin command.browser_screenshot is used.The package depends on playwright-core; it does not download a browser automatically.
The panel registers authenticated POST routes under /api/browser-use/ through
connection.fetch. It uses the standard DSH browser session and Origin checks,
forwards request cancellation to Playwright, and removes its routes when the
plugin unloads. No changes to the core plugins or profile injection overrides
are required. This checkout replaces the older /browser-use RPC transport;
rebuild it and refresh the DSH page after upgrading.
Install from npm into the profile that runs DSH Web:
dsh plugin --profile web add @syncended/dsh-browser-use
Or install a local checkout while developing:
git clone https://github.com/syncended/deepseek-harness-browser-use.git
cd deepseek-harness-browser-use
pnpm install
pnpm check
dsh plugin --profile web add -w "$PWD"
Restart the existing DSH Host after installation:
dsh --profile web --no-open
Do not start a second Host for the same profile. Refresh DSH Web after the Host is ready.
Login state is shared by all tabs in the configured browser profile. The durable profile is stored under the DSH home directory, not in this repository.
browser_status — inspect process state, control owner, and tabs.browser_tabs — list, create, select, or close tabs.browser_navigate — navigate the active tab.browser_snapshot — receive visible interactive elements with one-shot references.browser_click — click a reference from the latest snapshot.browser_type — replace the value of a text field.browser_press — send a Playwright key or shortcut.browser_scroll — scroll by pixel deltas.browser_screenshot — capture the active viewport as an image attachment.Take a fresh browser_snapshot after every click, type, key press, navigation, or scroll. Old snapshot references are intentionally rejected.
Password, payment, and one-time-code fields require human control and cannot be filled through browser_type.
The package adds this default Host entry through cordis.patch.yml:
- id: browser-use
name: '@syncended/dsh-browser-use'
config:
profile: default
headless: true
noSandbox: false
viewportWidth: 1280
viewportHeight: 800
screenshotQuality: 70
operationTimeoutMs: 20000
humanLeaseTtlMs: 15000
Override only the required values in the profile's cordis.patch.yml. Useful options include:
| Option | Purpose |
|---|---|
profile |
Durable browser-profile name. |
headless |
Run Chromium without a desktop window. |
executablePath |
Use a specific Chromium or Chrome binary. |
noSandbox |
Add Chromium's --no-sandbox flag. |
viewportWidth, viewportHeight |
Default page viewport. |
screenshotQuality |
JPEG quality from 1 to 100. |
operationTimeoutMs |
Navigation and action timeout. |
humanLeaseTtlMs |
Time before an inactive human-control lease expires. |
Restart the Host after changing Host configuration.
trustedHosts policy. Do not expose DSH Web to untrusted networks.noSandbox: true only inside an appropriately isolated container where Chromium runs as root.profile for untrusted browsing or separate identities.Install Chromium or Chrome on the Host and set executablePath to its absolute path. On Linux, also verify that the browser's shared-library dependencies are installed.
Confirm that the package is installed in the profile serving DSH Web, restart that Host, and refresh the page.
Release control in the Browser panel or wait for humanLeaseTtlMs to expire.
Call browser_snapshot again. References are valid only for the page state that produced them.
This plugin does not attempt to bypass anti-bot controls. Use the site's supported API or complete the operation manually where permitted.
dsh plugin --profile web add @syncended/dsh-browser-use@latest
dsh plugin --profile web remove @syncended/dsh-browser-use
Restart the Host after either command.
pnpm install
pnpm check
npm pack --dry-run
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。