前言¶
在 DeepSeek Harness 里做智能体或日常对话时,常见做法是用系统浏览器打开 chat.deepseek.com,或在多个窗口之间切换。页面不在应用内,切走容易丢上下文;Electron 内嵌站点又常遇到 UA 被识别为异常环境、登录态无法跨重启等问题。下面介绍社区插件 dsh-deepseek-site(维护者 WJMACTD,分类:客户端):在 Harness 左侧栏增加一个入口,在中央面板内嵌官方站点,切面板不重载,并尽量在本机跨重启保留登录。
这是什么¶
dsh-deepseek-site 是 DeepSeek Harness 的客户端 bundle 插件(当前资料中的版本为 1.6.2,许可证 MIT,依赖 dsh >=0.2.1-rc.2 <0.3.0)。它不做服务端逻辑:index.js 的 apply() 为空,实际能力在 client.js 里注册左侧 sidebar.panellist 入口与 main 面板,用一处 guest 实例加载 https://chat.deepseek.com/。
- 目录页:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
- 源码:https://github.com/WJMACTD/dsh-deepseek-site
社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;安装前请自行阅读源码与许可证。
核心功能¶
内嵌与保活¶
点左侧入口后,站点显示在应用窗口内部的中央面板,不跳转系统浏览器(除非用户主动选择兜底打开)。
- 切走不卸载:页面挂在
document.body上,切换到其他面板再回来,对话、滚动位置、正在生成的回答仍保留,页面不重载。 - 面板顶部有紧凑工具栏:标题、登录态、重新加载、在系统浏览器打开、以及(有快照时)「忘记本机登录」。
- 顶部留白按平台区分:Windows 由外层框架预留标题栏,页面只留 16px;macOS 才叠加
--dsh-frame-top-clearance。 - 固定
WORKSPACE_KEY为dsh-deepseek-site,所有工作区共用同一个 guest 分区,登录与站点偏好不随工作区切换重置;代价是工作区之间不隔离该浏览容器。
导航与白名单¶
chat.deepseek.com 站内跳转留在内嵌页;站外 https 链接交给系统浏览器,且 2 秒内同一地址只开一次。
User-Agent¶
仅从 UA 中去掉 Electron/<版本> 这一个产品标记,平台与内核版本原样保留。站点若检测 UA 中是否含 electron 字样,需在页面脚本运行前写入 useragent 属性,并在 dom-ready 时再调用一次 setUserAgent。
无桌面浏览器 API 时的行为¶
运行环境没有 window.dshDesktop.browser(例如在普通浏览器里打开 Web UI)时,面板显示说明卡片并提供兜底按钮,不会静默跳转。
登录记忆(快照 + 回放)¶
guest 分区名为 dsh-sidebar-browser-<uuid>,无 persist: 前缀,进程内有效;应用重启后 guest 的 localStorage 会空。插件用快照绕开:
- 在站点文档每次
did-finish-load、站内路由变化、以及窗口可见时每 15 秒执行CAPTURE_SCRIPT,只读userToken与__appKit_userInfo。 - 有 token 则写入应用文档
dsh-app://app/的 localStorage(键deepseek-site:sign-in:v1);该 scheme 默认 session 持久化,快照可跨重启。 - 下次打开面板,在
did-finish-load时用restoreScript写回 guest 的 localStorage,写过则reload()一次;回填期间有遮罩,避免登录页闪烁。 - 同一次运行内 guest 已有有效 token 时不覆盖,避免把新登录写回旧快照。
工具栏「已记住登录」表示快照已保存;状态文字含义如下:
| 状态 | 含义 |
|---|---|
| 已回填登录 | 快照写进内嵌页并重新加载了一次 |
| 登录有效 | 内嵌页本来就有 token,没有覆盖 |
| 无登录快照 | 本机还没记录过登录,或回填被拒 |
「忘记本机登录」会同时删除应用文档里的快照和 guest 内两份凭据后重载;只删一侧会被捕获逻辑再次写回。
诊断信息写入应用文档 localStorage 的 deepseek-site:diag:v1(环形缓冲最近 20 条,仅在结论/次数/token 长度变化时追加),字段为 at、note、attempts、tokenLen,不含 token 或完整 URL。
安装与启用¶
已抓取资料中的 README 与 package.json 未给出 Harness CLI 的一行安装命令;请从 SkillHub 目录页或仓库说明中确认当前推荐安装方式,不要凭仓库名自行拼接未在文档中出现的命令。
bundle 通过 cordis.patch.yml 将 deepseek-site 插入 profile;客户端在 package.json 中声明为 dsh.client.platform: web、immediately: true。启用后重启或按你使用的 DSH 版本要求 reload 插件即可在左侧看到入口。
典型用法¶
- 在 Harness 桌面版(具备
window.dshDesktop.browser)中安装并启用插件。 - 点击左侧栏 DeepSeek 入口,在中央面板完成官网登录(首次无快照时会走正常登录页)。
- 日常在 Harness 内与其他面板切换,内嵌对话保持不 reload。
- 需要站外链接或排查问题时,用工具栏「在系统浏览器打开」或「重新加载」。
- 换机或不再信任本机存储时,点「忘记本机登录」,或移除插件后清理 Electron 用户数据目录下相关
Local Storage/leveldb数据。
更细的时序与容器结构见仓库内 docs/architecture.md;本机环境坑见 docs/pitfalls.md。
适用场景与注意¶
适合:希望在 DSH 单窗口内长期使用官方 chat.deepseek.com、减少浏览器来回切换,并愿意在本机保存登录快照的用户。
务必知晓:
- 快照为明文 JSON,存于 Harness 桌面版 Electron 用户数据目录(含
Local Storage/leveldb),敏感程度与 Harness 自身登录相当;同源的其它插件理论上可读,勿安装来路不明的 bundle。 - 插件以当前 DSH 进程权限运行,安装前应通读
client.js与 MIT 许可证。 - 仅复制
userToken与__appKit_userInfo,不复制其它__appKit_*特性键,以控制暴露面。 - 非桌面 Web UI 环境只能看到说明与兜底,无法完整内嵌。
结尾¶
dsh-deepseek-site 把官方对话页收进 Harness 左栏 + 中央面板,用保活与 UA 处理改善内嵌体验,用应用文档 localStorage 快照解决 guest 分区不持久的问题。细节与测试见 GitHub 仓库(含 test-signin.cjs)。
- 插件目录:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
- 源码:https://github.com/WJMACTD/dsh-deepseek-site