DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Playwright — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-plugin-playwright

Plugin Playwright

适用于 DeepSeek Harness 的 Playwright 浏览器自动化工具

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-playwright@0.2.0
README兼容性版本

兼容性与来源证明

Plugin Playwright 以 dsh-plugin-playwright 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.2.0stable
2026/8/17
0.1.0stable
2026/8/17

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
107.4 kB
文件数
32
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
99
最近提交
2026/8/17
查看源码 ↗
项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-plugin-playwright

Playwright browser automation tools for DeepSeek Harness.

This plugin registers the browser_* tool family on the Harness tool registry, launching a real Chromium/Firefox/WebKit browser so an agent can navigate pages, interact with elements, read the accessibility tree, capture files, and manage a session — all through structured tool calls.

Design note: this codebase is written as an independent DSH plugin, organized by user intent (navigate / interact / inspect / control / capture / power) rather than by a generic Playwright port. It builds on the browser automation concepts popularised by the wider Playwright tooling ecosystem.


Table of contents

  • Install
  • Quick start
  • Configuration
  • Tool catalog
  • Architecture
  • Development
  • Differences to note

Install

Add the plugin to a DSH profile and activate it:

# Add the plugin to the `web` profile (dsh plugin forwards to pnpm in the profile dir)
dsh plugin --profile web add dsh-plugin-playwright

Because the browser is a peer of your machine UI, you need a real browser engine. Playwright downloads its own managed builds on first launch (npx playwright install chromium); alternatively set executablePath to a pre-installed browser (see Configuration).

Quick start

After activation, an agent can drive a page like this:

  1. Perceive — browser_snapshot returns the accessibility tree with numeric refs.
  2. Navigate — browser_navigate { "url": "https://example.com" }.
  3. Act — browser_click { "ref": 4 } or browser_type { "selector": "#q", "text": "hello" }.
  4. Observe — browser_console_messages / browser_network_requests.
  5. Capture — browser_screenshot saves a PNG under the output directory.

The browser is launched lazily on the first tool call and closed when the plugin fiber disposes.


Configuration

Configuration is declared via the schema in src/config.ts. The shipped defaults (in cordis.patch.yml) are headless and horizontally-scoped. The meaningful knobs:

FieldDefaultMeaning
browserchromiumEngine: firefox / webkit / msedge (msedge ⇒ chromium + msedge channel)
headlesstrueNo visible window
executablePath—Launch this browser binary instead of Playwright's managed build; overrides channel
userDataDir—Persistent profile dir (chromium/msedge only); cookies/localStorage survive restarts
isolatedfalseIf true, every tool call gets a fresh context closed at call end (no state between calls)
viewport1280×720Initial viewport
device / locale / timezoneId / colorScheme—Device descriptor, locale, IANA timezone, color scheme
outputDir.dsh/playwrightWhere screenshots / PDFs / traces are written
timeoutMs30000Default per-action timeout
navigationWaitUntilloadDefault wait condition for navigation
capabilitiessee belowPer-capability toggles
evaluatefalseEnables the browser_evaluate escape hatch (off by default)

Capabilities

Gate whole tools or strip data from results:

capabilities:
  accessibility: true   # attach a snapshot to state-bearing results
  screenshot: true      # register browser_screenshot
  pdf: true             # register browser_pdf (chromium/msedge)
  network: true         # register browser_network_requests + capture network
  tracing: false        # register browser_tracing_start/stop
  storageState: false   # register browser_storage_state + browser_init_script

Tool catalog

Tools are organized into behaviour modules (see Architecture). All tool names, parameters and outputs are stable contracts.

navigation — moving / waiting on a page

ToolWhat it does
browser_navigateLoad a URL and wait; returns URL + title + snapshot
browser_back / browser_forwardHistory navigation
browser_reloadReload the active page
browser_wait_forWait for a CSS selector to reach a state

interact — mutating the page

ToolWhat it does
browser_clickClick by element ref or CSS selector (supports button/modifiers/count)
browser_typeFill an input/textarea (clear-by-default), or type without clearing
browser_type_submitType then press Enter (forms, search boxes)
browser_select_optionSelect <select> options by value/label
browser_hover / browser_focusHover / focus an element
browser_press_keyPress a key or shortcut on an element or the page
browser_dragDrag one element onto another
browser_upload_fileSet files on an <input type=file>

inspect — reading the page state

ToolWhat it does
browser_snapshotAccessibility tree with numeric refs for interactive elements
browser_console_messagesCaptured console messages (ring buffer)
browser_network_requestsCaptured request/response entries, filterable by URL/method/status

control — operating the session

ToolWhat it does
browser_tab_new / browser_tab_switch / browser_tab_close / browser_tab_listTab lifecycle
browser_resizeResize the active viewport
browser_init_script (capability)Register a script that runs on every future page load
browser_storage_state (capability)Return cookies + localStorage of the shared context

capture — producing files

ToolWhat it does
browser_screenshot (capability)Save a screenshot under the output directory
browser_pdf (capability)Print to PDF (chromium/msedge)
browser_tracing_start / browser_tracing_stop (capability)Start/stop capture and write a trace zip

power — the escape hatch

ToolWhat it does
browser_evaluate (config evaluate)Evaluate arbitrary JS in the page (reads and writes; disabled by default)

Architecture

src/
├── index.ts          Assembly: register tools + own the browser lifecycle
├── config.ts         Configuration schema + defaults
├── browser.ts        BrowserSession, CallHandle, withAbort (lazy start, shared/isolated)
├── snapshot.ts       ariaSnapshot → JSON tree + ref→locator map
└── tools/
    ├── schema.ts     Shared value contracts (state / tab / file results)
    ├── util.ts       Cross-cutting helpers (pageState, resolveLocator, abortable, …)
    ├── factory.ts     createTools(session, config) — assembles all behaviour modules
    ├── navigation.ts / interact.ts / inspect.ts / control.ts / capture.ts / power.ts
    └── ...            each module owns one behaviour group (see catalog above)

Every tool configures an execute(body) that runs through session.run, which resolves a CallHandle — the shared persistent context by default, or a throwaway per-call context in isolated mode. Cancellation (AbortSignal) is bridged into Playwright operations via withAbort.


Development

pnpm install        # install dependencies
pnpm typecheck      # run tsc over src + test
pnpm smoke          # mount the plugin and drive a real headless chromium

See AGENTS.md for the maintainer's map of the codebase and the convention for adding tools.


Differences to note

This plugin is an independent DSH implementation. Notable design choices:

  • Organised by user intent. Files are grouped into navigation / interact / inspect / control / capture / power rather than around a serialised upstream API surface.
  • Session model. One plugin instance owns one lazily-started shared browser; isolated gives per-call transparency. Shared state survives between calls by default.
  • Cancellation-aware. Tool operations are abortable via the harness signal, not fire-and-forget.
  • Contract-driven. Every tool spells out a canonical JSON value plus a separate model-facing render projection, validated against the harness's lossless-JSON rules.
  • browser_evaluate gated. The arbitrary-JS escape hatch is off unless you explicitly opt in.

相关插件

继续浏览 search-research 分类下经过校验的插件。

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。Anysearch Dsh@anysearch/anysearch-dsh适用于 DeepSeek Harness 的 AnySearch 网络搜索和获取提供程序及高级工具