dsh-friends-plugin: Floating Friends List and One-on-One Chat within DSH

前言

在 DeepSeek Harness(DSH)里跑任务、调模型时,开发者往往长时间停留在同一 Host 界面。若需要和同机或远程的协作者做简短文字沟通,切到 IM 或浏览器标签会打断上下文。社区插件 dsh-friends-plugin(维护者 Orchidroot,分类:联网工具)把好友列表、个人资料和多标签一对一聊天做成可拖动的浮窗,叠在 DSH 之上,切换 DSH 页面时布局仍保留。

该插件只负责 DSH 侧界面与 Host RPC;好友关系、消息与身份数据落在需自行部署的好友服务上(服务仅提供 API,没有网页界面)。这与「在 DSH 里装一个联网类工具、再连自托管后端」的常见做法一致:界面在插件,数据在你控制的服务器。

这是什么

dsh-friends-plugin 是可安装包,当前资料中的版本为 0.8.2(MIT 许可证)。它在 DSH 内注册侧栏与 overlay,提供浮动好友窗口;通过配置的 serviceUrl 与好友服务通信。DSH 目标版本为 >=0.2.1-rc.5 <0.3.0,依赖 DSH 自带的 Schema、React、connection 和 credentials,不需要单独编译。

目录页:Skillhub 插件页
源码与说明:GitHub — Orchidroot/dsh-friends-plugin

核心功能

浮窗与布局

侧栏底部「好友」行或右下角「好友」按钮会直接弹出浮窗,不切换 DSH 页面。标题可拖动,角落可缩放,可最小化或关闭;切换 DSH 页面时布局保留,重新加载页面则重置布局。

个人资料与状态

可上传头像(客户端压成 96px JPEG)、写 140 字签名,并将「在线/离开/忙碌」换成自定义词条。浮窗还会展示「在跑任务 / 使用中 / 空闲」(词条可自定义)、今日 token 用量,以及本轮任务已跑多久——依据是 DSH 会话日志最近是否在写入,不读取对话内容。

身份与多设备

「换电脑」流程中可出码:迁移码表示搬家(旧机器退出);多端共享码表示两台设备同时在线且权限相同。0.2.x 身份可在服务升级后保留(服务数据库自动迁移);0.1.x 浏览器 localStorage 身份不能自动迁移。

聊天

点击好友的聊天按钮打开多标签一对一文字聊天。Enter 发送、Shift+Enter 换行,支持输入法、离线留言、未读数、新消息提醒和已读回执。每条消息最多 2000 个 Unicode 字符;服务器每段会话保存最近 1000 条。失败后由用户手动重试,同一次请求使用同一标识以避免重复。

Host 侧实现要点(供核对行为)

资料中列出的模块分工:index.js 注册 owner 鉴权 RPC;host.mjs 管理身份、心跳与自动离开;chat.mjs 处理消息投影与可取消长轮询;stream.mjs 订阅 SSE 并退避重连;client.js 为 React-only lazy factory,注册管理页、侧栏与 overlay,使用 DSH 主题 token 与中英字典。README 称 85 项自动化测试通过,含真实临时服务的双 Host 聊天与安全竞态回归。

安装与启用

  1. 在 DSH 插件页安装该插件目录或 npm tarball,并确认 Host 信任提示。
  2. 另行运行好友服务(仅 API,无 Web UI),并保证 Host 能访问其 origin。
  3. 配置插件项(见下节)。升级插件或 Host 相关代码后,必须重启 DSH 才能加载新代码;state RPC 的 version 应为 0.8.2,磁盘上的包版本不代表运行中代码已更新。

打包 tarball 时,资料给出的命令为:

npm pack --ignore-scripts

资料未给出 dsh plugin add github:... 一类 CLI 字符串,安装以 DSH 插件页与 tarball 为准。

配置项

配置项 说明
serviceUrl 默认 http://127.0.0.1:8787,表示 Host 可访问的好友服务 origin。远程部署必须使用 HTTPS;不允许在 URL 中带路径、query 或账号密码。
autoAwayMinutes 默认 10;设为 0 可禁用自动离开。

典型用法

  1. 部署并启动好友服务,记下 Host 能访问的 origin(本地常用默认 http://127.0.0.1:8787)。
  2. 在 DSH 插件页安装 dsh-friends-plugin,填写 serviceUrl,按需调整 autoAwayMinutes。
  3. 重启 DSH 后,从侧栏「好友」或右下角按钮打开浮窗,完善资料与在线状态。
  4. 添加好友后,用聊天按钮开标签页对话;需要换设备时在「换电脑」按 README 说明使用迁移码或多端共享码。

适用场景与注意

适合谁:需要在 DSH 工作流里保持可见、可拖动的协作者列表与私聊,且愿意自托管好友服务 API 的团队或个人。

权限与安全:插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证。身份令牌仅存于 DSH 凭据库,按服务 origin 哈希区分;浏览器只能调用 owner 鉴权的固定 RPC,不能拿到令牌或随意指定上游 URL。插件不读取 DSH 会话、文件、模型或任务。

隐私(README 明确说明):聊天明文保存在自部署服务器,管理员可读,不是端到端加密。删好友会连同聊天记录一并清除。界面上没有注销账号与「忘记身份」入口,需要时直接调用服务端接口。隐身仅隐藏在线状态;主动发消息或已读回执仍会暴露活动。

验证范围:README 注明完整 DSH 重启、开机自启、公网部署与 Docker 构建不在其已验证范围内;自行上生产前应额外验证。

DSH 生态强调「一切皆插件」;Skillhub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-friends-plugin 把好友浮窗、资料与一对一聊天嵌进 DSH,通过自托管 API 同步关系与消息,适合不想离开 Host 又要轻量私聊的场景。部署服务、在插件页安装并配置 serviceUrl、重启 DSH 后即可从侧栏或右下角入口使用。

  • 目录页:https://www.skillhub.cn/plugins/Orchidroot/dsh-friends-plugin
  • GitHub:https://github.com/Orchidroot/dsh-friends-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye