前言¶
在 DeepSeek Harness 里用 API 对话,适合接工具、跑任务;完整的历史会话、网页端交互,往往还要打开 chat.deepseek.com。常见做法是两边切窗口、复制粘贴问题、手动对齐深色模式,还要处理 iframe 限制和每次重启重新登录网页。
下面介绍社区插件 dsh-deepseek-web-sync(仓库 S-anZZz/dsh-deepseek-web-sync):把官方网页版放进 Desktop 右侧栏,用 Electron 隔离 webview 加载真实站点,并把主题、登录态和提问文本与 Harness 侧尽量连在一起。设计与实现归属 ZCFE327;目录维护者为 S-anZZz,分类为客户端插件。
这是什么¶
一句话:左侧继续用 Harness 的 DeepSeek API 主对话,右侧同一窗口内常驻 DeepSeek 网页版,不做仿制 UI,不用 iframe,不代理整页聊天内容。
插件通过 Cordis 注册右侧栏原生 Tab(类型 id deepseek-web),Host 半部 index.js 仅导出空 apply(),能力集中在 Client 半部 client.js。package.json 中版本为 3.0.0,许可证 MIT。
核心功能¶
资料中列出的行为如下,安装前可按需对照 README 中的「功能一览」表。
| 能力 | 说明 |
|---|---|
| 右侧栏常驻 | 注册为右侧栏 Tab,不占用主对话区域 |
| 自动打开 | 每个会话第一次进入时自动打开;手动关闭后本次运行不再反复拉起,下次启动会再次自动打开 |
| 真实网页版 | 隔离 webview 加载 chat.deepseek.com |
| 不弹外链 | 不申请 guest 弹窗,新窗口请求被忽略 |
| 主题同步 | 读取 Harness 当前 --dsw-* token,写入 guest 页面;监听 theme/change |
| 美化插件同步 | 经 theme.overrideTokens 写入的 token 纳入同步范围 |
| 壁纸衔接 | Harness 页面壁纸以浅水印进入网页,顶部有同款纹理细条 |
| 登录保持 | 捕获网页版版本化 localStorage 登录包装,下次启动写回本机保存的 token |
| 提问带入 | 选区、输入框或「最近提问」抓取纯文本,经预览后填入左侧 Harness 输入框(不自动发送) |
安全边界上:guest 为 nodeIntegration: false、contextIsolation: true、sandbox: true;仅用户主动抓取时才有纯文本越过 guest 边界;不把 Harness API 凭证写入网页;登录 token 只存本机并在恢复网页登录时使用。
环境与限制¶
- 仅 DeepSeek Harness Desktop(Electron)。需已启用右侧栏与 Web Client;普通浏览器里的 Harness Web 没有隔离
webview,插件会在面板说明「仅桌面版」。 - Harness API 授权与
chat.deepseek.com网页登录是两套体系;插件不会转发 Harness 账号凭据,体验是「同一 DeepSeek 账号在网页登录一次后尽量保持」。 - 网页 DOM 或登录存储格式变更时,「最近提问」可能失效;选区抓取相对最稳。
- 视觉同步停留在 token / 壁纸级别,不会复制 Harness 的 React 组件或第三方主题插画。
安装与启用¶
插件无构建步骤,也无 npm 运行时依赖。官方 README 给出的本地安装流程如下。
- 将仓库放到本机目录(README 示例为克隆到本地;也可下载源码包解压,得到仓库根目录的绝对路径)。
- 在 Harness 插件管理 中选择从本地目录安装,或执行:
plugin_manager install_bundle <本仓库绝对路径>
- 安装后插件自动启用;每个会话首次打开时,右侧栏会出现 DeepSeek 网页版。
- 若手动关闭了标签,可点对话标题栏右侧 网页版,或在右侧栏 + 中选择 DeepSeek 网页版。
安装插件会以当前 DSH 进程权限运行扩展代码;安装前建议阅读仓库源码与 MIT 许可证,确认接受本机登录 token 的保存方式(见 README「安全边界」「已知限制」)。
典型用法¶
按 README「使用」一节,可复现的流程如下。
- 首次登录:在右侧 webview 中用平时使用的 DeepSeek 账号登录一次。
- 并行使用:右侧像浏览器一样使用网页版;左侧 Harness 继续 API 对话。
- 抓取提问:
- 网页中选中文字 → 顶部 选区;
- 或 输入框 抓取当前输入框内容;
- 或 最近提问 尝试读取最后一条用户消息。 - 填入主对话:结果进入可编辑预览,确认后点 填入当前对话,文字进入左侧输入框,不会自动发送。
- 再次打开:关闭标签后,用标题栏 网页版 或右侧栏 + → DeepSeek 网页版。
主题、壁纸与登录的触发时机见 README「同步机制」:Harness 切换主题或明暗模式时网页会重新同步 token;登录通过存储钩子与轮询感知退出并清除本机保存的令牌。
架构与接入点(开发者参考)¶
Harness Desktop
Conversation (API) ←── 纯文本 ── capture preview
Right Sidebar Tab (deepseek-web) ── isolated <webview> ──► chat.deepseek.com
Theme service ── theme/change + tokens ──► guest
local auth store ── token restore ──► guest
Client 侧主要使用:sidebarRightTabs.register、sidebarRight.openTab('deepseek-web')、sidebar.right.pane.tab 槽位、conversation.session.header.utilities、window.dshDesktop.browser.acquire/release,以及 inputActions.captureInsertion() / insertText()。修改 client.js 后可用 node --check client.js 做语法检查,再通过插件管理重载 bundle。
更细的实现说明见仓库内 docs/ARTICLE.md 与 QUICKSTART.md。
结尾¶
dsh-deepseek-web-sync 把「API 对话 + 官方网页版」收进同一 Desktop 窗口:主题与壁纸跟 Harness 对齐,网页登录尽量一次即可,选中内容可编辑后送进主对话输入框,且明确不代理聊天、不把 Node 能力暴露给 chat.deepseek.com。
- 社区目录页:https://www.skillhub.cn/plugins/S-anZZz/dsh-deepseek-web-sync
- GitHub:https://github.com/S-anZZz/dsh-deepseek-web-sync
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。选用第三方客户端插件时,以仓库 README 与源码为准。