dsh-search-screen
Verified@yinhaox/dsh-search-screen · v0.3.0 · MIT · Web UI
A full-window web search page for the DeepSeek Harness Web UI, using the same search provider as the agent's web_search tool, with an in-page reader and browser-style tabs for result pages.
Install
dsh plugin add @yinhaox/dsh-search-screen Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-search-screen
English | 中文
DeepSeek Harness(dsh)Web UI 的网页搜索插件。侧栏的「搜索」入口打开一个全屏搜索页,搜索走 dsh 已配置的搜索服务,页面展示答案和来源。


功能
- 侧栏全局入口,打开全屏搜索页(不绑定 Session)
- 浏览器式外壳:顶部页签条,每个页签各自保留搜索、结果、阅读视图和滚动位置;
+或双击页签条空白处新建,×或中键关闭,只有一个页签时不可关闭 - 结果显示答案、来源标题、站点、发布日期和摘要
- 点击结果标题在页内阅读正文:宿主抓取网页后只保留标题、段落、列表、引用和代码块,按界面主题排版;阅读页可返回结果,标题右侧的 ↗ 仍在新标签页打开原文
- 搜索框兼作地址栏:粘贴
http(s)网址按 Enter 直接打开阅读视图,不发起搜索 - 搜索中、无结果、失败、超时各有对应状态,抓取网页同样区分超时、过大、不支持的类型和访问失败
- 中文 / English 界面,跟随 dsh 的语言设置和明暗主题
- 纯 JavaScript,零运行时依赖,无需构建
安装
在 Web UI 里打开 插件 → 添加插件,输入 npm 包名 @yinhaox/dsh-search-screen;也可以用 Git 地址或本地目录安装。安装后侧栏出现「搜索」入口,无需重启。
使用
点击侧栏「搜索」,输入关键词按 Enter。搜索后焦点留在输入框,可以直接改词再搜;Esc 清空输入,输入为空时再按 Esc 回到首页。
页面顶部是页签条,每个页签是一个独立的页面:搜索、结果和阅读视图都留在自己的页签里,切走再切回不会丢内容,也不会打断另一个页签正在进行的抓取。页签标题取当前网页标题或搜索词,加载中有状态点。点 + 或双击页签条空白处新建页签,点 ×(只有一个页签时不可用)或中键关闭。
点结果标题会在页内打开阅读视图;「返回结果」按钮或 Esc 回到结果列表,「查看原文」在新标签页打开原网页。结果标题右侧的 ↗ 也可以直接在新标签页打开。
把 http:// 或 https:// 开头的网址粘贴到搜索框按 Enter,会跳过搜索直接在页内打开该网页的阅读视图,按钮同时显示为「阅读」;此时返回按钮回到搜索首页,若地址是从结果页输入的则回到结果列表。不带协议的文本(例如 example.com)仍按搜索词处理,避免把普通查询变成跳转。
配置
插件的行 id 是 search-screen,三个可选字段:
| 字段 | 默认 | 范围 | 说明 |
|---|---|---|---|
maxResults |
8 |
1–20 | 返回的来源条数 |
timeoutMs |
20000 |
1000–120000 | 单次搜索的超时时间 |
pageTimeoutMs |
30000 |
1000–120000 | 抓取单个网页的超时时间 |
在 profile 的 cordis.patch.yml 里按行 id 覆盖:
- id: search-screen
name: '@yinhaox/dsh-search-screen'
config:
maxResults: 12
timeoutMs: 30000
pageTimeoutMs: 45000
搜索服务由 profile 的 web 行决定,与智能体的 web_search 工具共用;凭证沿用 dsh 的 credentials / 启动环境。
开发
需要 Node 22.19 或更新的版本。
npm install
npm test
测试覆盖 Host 路由、插件注册、正文抽取,以及 jsdom 下的页面交互。
已知限制
- 仅支持
dsh web;Desktop 的 IPC 载体下不保证可用。 - 依赖
webServer和web服务,headless / SDK 组合下不会激活。 - 搜索在 Session 之外执行,只使用 API key 凭证。
- 网址最多 2048 个字符,搜索词最多 500 个字符。
- 最近搜索只保存在内存中,刷新或重启后清空。
- 页签与其内容同样只保存在内存中:离开「搜索」面板再回来,会回到一个空白页签。
- 页签没有
Ctrl+T/Ctrl+W/Ctrl+Tab快捷键:这些是浏览器保留的按键,网页无法接管,按下只会作用在外层浏览器上。 - 阅读视图只保留标题、正文段落、列表、引用和代码块,不加载图片、脚本和原站样式;需要登录或被反爬策略拒绝的站点会显示抓取失败。
- 抓取只接受 HTTP(S),并拒绝本机、私有网段和保留域名的字面地址(包括重定向目标);不解析 DNS 判断解析结果。
- 单个页面最多读取 2 MB、5 次重定向。
发布
发布由 GitHub Actions 完成(.github/workflows/publish.yml)。在 npm 包设置里配置 Trusted publishing 后,更新 package.json 的版本并推送 v* tag 即可。
License
MIT © yinhaox