dsh-tool-playwright
by cheng-nan01
让 AI 真正打开浏览器用网的 DeepSeek Harness 插件:像人一样访问页面、点按钮、填表、切标签页并读取页面内容
A plugin for DeepSeek Harness that lets the AI actually open a browser and use the web — visit pages, click buttons, fill forms, switch tabs, and read page content, the way a…
安装
dsh plugin --profile web add github:cheng-nan01/dsh-tool-playwrightGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
English | 中文
一个给 DeepSeek Harness 用的插件:让 AI 能真的打开浏览器上网——打开网页、点按钮、填表单、翻页、看页面内容,就像人一样操作浏览器。
它移植自微软的 playwright-mcp 项目,但不需要单独开一个服务器进程,直接跑在 harness 内部。
它能做什么
| 想做的事 | 用的工具 |
|---|---|
| 打开网页、后退、前进、刷新、等页面加载 | browser_navigate、browser_back、browser_forward、browser_reload、browser_wait_for |
| 点击、输入文字、下拉选择、鼠标悬停、按键盘、拖拽、上传文件 | browser_click、browser_type、browser_type_submit、browser_select_option、browser_hover、browser_focus、browser_press_key、browser_drag、browser_upload_file |
| 查看当前页面长什么样 | browser_snapshot |
| 开新标签页、切换标签页、关标签页、列出标签页 | browser_tab_new、browser_tab_switch、browser_tab_close、browser_tab_list |
| 调整窗口大小、截图、存成 PDF | browser_resize、browser_screenshot、browser_pdf |
| 看网页报错信息、看网页请求了哪些网址 | browser_console_messages、browser_network_requests |
| 高级功能(默认关闭,需要专门打开) | browser_evaluate、browser_storage_state、browser_init_script、browser_tracing_start、browser_tracing_stop |
两个词先解释清楚:
- 快照(snapshot):不是截图!是 AI 看网页的方式——一份"网页结构清单",列出页面上有哪些按钮、链接、输入框,各自叫什么、编号(ref)是多少。
- ref:清单里的编号。AI 说"点 3 号"就能点 3 号元素。也可以直接给一个 CSS 选择器(比如
#search)代替编号。
怎么安装
第 1 步:认识你的"配置目录"(profile)
harness 的每套配置叫一个 profile,在硬盘上就是一个文件夹:
C:\Users\<你的用户名>\.dsh\profiles\<档案名>\。网页版 GUI 用的那套叫 web。下面的命令都是装进 web 这套。
第 2 步:从 GitHub 克隆插件代码到本地
git clone https://github.com/cheng-nan01/dsh-tool-playwright.git
克隆完成后,你会得到一个插件文件夹(名字叫 dsh-tool-playwright),里面是插件的全部代码。这个文件夹之后别挪位置、别删。
第 3 步:用"本地文件夹"方式安装
dsh plugin --profile web add link:克隆下来的插件文件夹完整路径
把
link:后面的路径换成你刚才克隆出来的文件夹路径(例如link:D:\my-plugins\dsh-tool-playwright)。
这条命令内部做了 3 件事:
- 登记:把插件写进配置目录里的
package.json(已安装清单); - 建快捷方式:在配置目录的
node_modules里生成一个指向你插件文件夹的快捷方式——代码不会被复制; - 加入启动清单:把插件名加进
dsh.profile.bundles,这是下次启动时"加载它"的依据。
link:表示"建快捷方式、不复制代码"。也可以写add ./相对路径(相对你当前所在的目录)。
第 4 步:重启 harness
"启动清单"只在 harness 启动时读取一次,所以装完必须重启才生效:
停掉 pnpm dsh web(按 Ctrl+C)→ 重新运行 pnpm dsh web。
第 5 步:验证
dsh --profile web --dump-config # 看输出里有没有 "# == dsh-tool-playwright" 这一层
重启后在 http://127.0.0.1:3080 让 AI 用 browser_navigate 打开一个网页,能打开就说明装好了。
卸载
dsh plugin --profile web remove dsh-tool-playwright # 删登记 + 删启动清单
如果你还在配置目录的 cordis.patch.yml 里写过覆盖配置,记得顺手删掉那段。
常见问题
- 找不到
dsh命令:在 harness 源码目录(DeepSeek Harness 代码所在的文件夹)下改用pnpm dsh ...。 - 装完没反应:几乎都是忘了重启。
- 插件文件夹挪了位置:快捷方式断了,重新执行一次
add。 - 安装时看到 "declares no dsh.bundle" 警告:表示这个包只是普通依赖、不会自动激活——本插件已声明为 bundle,不会有这个警告;第三方普通库出现属正常。
怎么改设置
插件自带一套默认设置(无头模式、chromium 等,见下表)。想改的话,编辑 harness 的 cordis.patch.yml 文件,把完整的设置重新写一遍(注意:它是整体替换,不是只改一行,漏掉的设置会回到默认值):
# 在 $DSH_HOME/profiles/<档案名>/cordis.patch.yml 里追加:
- id: dsh-tool-playwright
config:
browser: chromium # 用哪个浏览器:chromium / firefox / webkit / msedge
headless: false # false = 弹出可见的浏览器窗口;true = 后台默默运行
executablePath: '' # 可选:指定用哪个浏览器程序(不填就用 Playwright 自带的)
viewport:
width: 1280 # 窗口宽度(像素)
height: 720 # 窗口高度(像素)
timeoutMs: 30000 # 每个操作最多等多少毫秒
capabilities:
screenshot: true # 允许截图
pdf: true # 允许存 PDF
network: true # 允许查看网络请求
常用设置一览:
| 设置项 | 作用 | 默认值 |
|---|---|---|
browser |
用哪个浏览器 | chromium |
headless |
false 显示窗口,true 后台运行 |
true |
channel |
用系统里装好的 Chrome/Edge(如 chrome、msedge) |
不填 |
executablePath |
指定用哪个浏览器程序文件 | 不填(用自带) |
userDataDir |
把登录状态(cookie)存到固定文件夹,重启不丢 | 不填(临时) |
isolated |
true = 每次操作都用全新浏览器(不留痕迹) |
false |
viewport |
窗口大小 | 1280×720 |
outputDir |
截图、PDF 存在哪 | .dsh/playwright |
timeoutMs |
每个操作等待上限(毫秒) | 30000 |
evaluate |
是否允许 AI 在网页里执行任意代码(有风险,谨慎开启) | false |
常见问题
1. 装好后 AI 打不开浏览器?
先装一次浏览器本体:npx playwright install chromium。如果不想下载,也可以设置 executablePath 指向电脑上已有的浏览器。
2. 想亲眼看到 AI 操作浏览器?
把 headless 设为 false,重启 harness。之后 AI 每次操作都会在可见窗口里实时演示。
3. 插件代码放在哪里都可以吗?
可以。装的时候用 link: 加上完整路径就行;harness 通过快捷方式找到它。E 盘、D 盘、任意目录都行,路径对得上即可。
4. 和原来的 playwright-mcp 有什么不同?
不用额外开服务器进程、工具名没有多余前缀、截图 PDF 等能力默认更保守(evaluate 默认关)。用法基本一样。
给开发者
pnpm typecheck # 检查代码类型
pnpm smoke # 用真实浏览器跑一遍自测
冒烟测试会真实打开浏览器,跑"打开页面 → 看结构 → 点按钮 → 输入文字"这一整套流程。如果本机没有 Playwright 自带的浏览器,可以用环境变量指到已有的浏览器:
$env:DSH_PLAYWRIGHT_EXECUTABLE = "C:\path\to\chrome.exe"; pnpm smoke
本机开发时依赖是通过 node_modules 里的快捷方式(junction)指向 harness 源码目录的,所以不用联网装依赖。
许可证
MIT。工具逻辑移植自 playwright-mcp(Apache-2.0),面向 harness 的实现为原创。
原始 README: https://github.com/cheng-nan01/dsh-tool-playwright/blob/main/README.zh.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制