dsh-programmer-chatroom:DSH 上的去中心化 P2P 群聊客户端

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,Web UI 往往长时间占着屏幕:等模型输出、等工具链收尾,同事或同组开发者却不在同一个 IM 里。自建中心化聊天服务要运维、要账号体系;直接在 DSH 插件沙箱里绑端口又受宿主能力限制——常见做法是另开一套服务,和 Harness 会话脱节。

@eave_bounty/dsh-programmer-chatroom 面向上述场景:在 DSH web profile 里挂一个客户端插件,让每台跑着 DSH 的机器同时充当中继,在局域网或配置好的公网 rendezvous 上组成 mesh 群聊。下面介绍它是什么、能做什么,以及如何安装与基本使用。

这是什么

dsh-programmer-chatroom 是 EaveBounty 维护的 DSH 客户端类插件(SkillHub 目录页标注版本 v1.2.2)。一句话定位:面向 DeepSeek Harness 的去中心化 P2P 群聊——每台机器都是 relay,消息在节点本地用内嵌 DFA 做离线审核,界面走微信/QQ 式气泡布局并配合 DeepSeek 品牌配色。

插件解决的核心问题是:在 DSH 插件宿主 API 较窄(文档说明半区不直接提供 net/dgram/crypto/ws/URL 等)的前提下,仍能让多机互聊。实现上由插件通过宿主 subprocess 拉起插件外的 Node 伴生进程 dshc-relay.js,用文件 IPC 与 UI 层交换消息,中继进程负责真实网络监听与 mesh 合并。

核心功能

以下能力均来自插件公开文档(npm 包说明与社区目录页),按模块归纳。

去中心化 mesh 与中继

DSH 启动并加载插件后,伴生中继默认绑定 0.0.0.0,节点之间通过 HTTP 拉取、按全局 msgId 去重合并,不依赖单一中央聊天服务器。文档明确:聊天记录只存在于在线机器内存,全部关闭即消失,不做持久化存储。

离线内容过滤(DFA)

每条消息在发送节点本地经过内嵌 DFA 敏感词过滤与中文词库;文档还提到正则增强(如疑似 API 密钥、身份证号、手机号等模式)。违规内容在写入 mesh 前被丢弃,发送端无额外提示。细节见包内 docs/SECURITY.md(文档索引中列出)。

Web UI 与成员身份

web profile 侧边栏底部出现「群聊」入口,浮动面板含聊天、成员、设置等页:气泡、头像颜色、昵称(硬件指纹派生 deviceId 后可改)、气泡间距/字距/字号等可调并记忆。

双网络模式

  • 局域网:UDP 信标自动发现同网段节点,也可在设置里手动添加 http://<对方 IP>:<对方端口>。
  • 互联网:可切换至互联网模式,配合自部署的 Cloudflare Workers rendezvous(见 docs/RENDEZVOUS.md)与 cpolar 等内网穿透,上报公网地址后跨 NAT 互连。关闭群聊时文档说明隧道与上报会停止,节点目录约 5 分钟过期。

许可证

公开文档标注 MIT © EaveBounty。

安装与启用

插件为标准 npm 包 @eave_bounty/dsh-programmer-chatroom,推荐安装到 DSH 的 web profile。安装后需重启 DSH,插件才会加载。

推荐命令如下(与文档「从 npm 安装」一节一致):

dsh plugin --profile web add @eave_bounty/dsh-programmer-chatroom

也可全局安装 npm 包(文档给出的备选方式):

npm install -g @eave_bounty/dsh-programmer-chatroom

安装完成后,可用下面命令确认配置层是否生效(文档示例使用 default profile 的 dump;若你仅改 web profile,请对照自己的 profile 名称):

dsh --profile default --dump-config

社区安装指南还建议结合 dsh plugin --profile web why 检查依赖,并通过 dsh web 启动 Web UI 验证侧边栏是否出现群聊入口。

安全提示:插件会以当前 dsh 进程权限运行,并会拉起伴生 Node 中继监听网络。安装前请阅读包内源码、LICENSE 与 docs/SECURITY.md,确认可接受本地过滤策略与 subprocess 行为;勿在未审计的情况下在生产敏感环境直接启用公网 rendezvous。

典型用法

经过上面的安装与重启,可按文档「快速开始」顺序操作:

  1. 在已加载插件的 DSH web 会话中,打开侧边栏底部的群聊面板。
  2. 局域网(默认):同网段多台 DSH 通常会被 UDP 信标发现并直连;必要时在「设置 → 网络模式」手动添加对端 http://<IP>:<端口>。
  3. 互联网:在设置中切换到互联网模式,填写你的 Cloudflare Workers 站点地址;按文档配置 cpolar(如 npm i -g cpolar 与 cpolar authtoken <token>),由插件上报公网地址并拉取其他在线节点。
  4. 调试 mesh 时,文档给出独立运行中继与测试 peer 的示例(不经过 DSH UI):
node dshc-relay.js --port 39321 --bind 0.0.0.0 --name nodeA
node dshc-relay-test-peer.js Alice "hello everyone" "sk-should-be-blocked1234567890"

第二条命令中的敏感样例字符串用于验证 DFA 拦截逻辑(文档示例原文保留)。

适用场景与注意

适合谁:在同一局域网或已约定 rendezvous 的多名 DSH 用户,希望在等 Agent 时轻量互聊,且能接受无历史记录、关闭即清空的语义。

需要注意:

  • 依赖 web profile 与 Web UI;headless 场景需自行评估是否满足需求。
  • 互联网模式涉及自建 Workers、内网穿透与公网暴露面,部署前应读完 docs/RENDEZVOUS.md 并限制站点访问。
  • DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文安装命令以插件公开文档为准,而非目录页短链拼接。

结尾

dsh-programmer-chatroom 把 P2P 群聊收进 DSH 客户端层:伴生中继绕开宿主网络限制,本地 DFA 在出网前过滤,UI 贴近常见 IM 习惯。若要在 Harness 里试装,可从社区目录查看条目信息,并对照 npm 包说明完成 profile 安装与重启。

  • SkillHub 目录页:https://www.skillhub.cn/plugins/EaveBounty/dsh-programmer-chatroom
  • GitHub(线索页,访问时请自行确认仓库是否可用):https://github.com/EaveBounty/dsh-programmer-chatroom
  • 插件说明镜像(含完整 README 与安装节):https://dshmp.com/en/plugins/eave_bounty-dsh-programmer-chatroom
羽毛球分组比赛记分
小程序二维码

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

小夜