前言¶
DeepSeek Harness(DSH)插件生态支持通过扩展功能来丰富工作流。在本地多节点协作的场景下,开发者通常需要在同一局域网下的多台 DSH 实例间进行即时沟通。lan-im 插件解决了这一问题,它允许安装本插件的 DSH 实例以账号身份互相发现,并实现可靠的消息投递与局域网文件共享。
功能特性¶
该插件构建了一套完整的局域网即时通讯与协作方案,主要包含以下能力:
- 账号体系:以账号(username + 显示名)而非机器作为身份。首次使用需设置账号,之后免登录。
- 网络发现:采用 mDNS + UDP 广播双通道进行节点发现,按设备去重,即使在组播被隔离的网络中也能发现。
- 可靠消息:私聊支持送达确认(ack)与离线补发(持久化 outbox,对端上线自动补发);群聊为尽力投递。
- 实时推送:客户端与宿主间使用浏览器原生 WebSocket(同源升级,无轮询),窗口关闭后连接依然保持。
- 通知未读:提供悬浮按钮未读角标,并在窗口关闭或不可见时触发桌面通知。
- 频道管理:使用 UUID 稳定标识频道,支持公共频道与私有频道。私有频道支持成员邀请、移除及消息按成员路由。
- 局域网网盘:每个频道对应一个共享文件空间,通过索引广播实现按需拉取与本地缓存,上传者可删除文件。
- 数据与 UI:聊天历史本地落盘至
~/.dsh/plugins-data/lan-im/(内存窗口上限 500 条,历史文件全量保留)。UI 提供侧边栏入口、可拖拽悬浮窗(支持快捷键唤起)及诊断日志。
安装与启用¶
在终端执行以下命令即可完成安装与启用:
dsh plugin --profile web add git:https://github.com/mishiqian/lan-im.git
dsh web
安装完成后,重启 DeepSeek Harness 的 Web 服务组合。
使用¶
- 创建账号:首次打开悬浮窗时,输入账号、显示名(密码可选)以创建本地身份。
- 唤起界面:通过侧边栏「局域网聊天」标签、右下角悬浮按钮或快捷键
Ctrl+Shift+L唤起聊天窗口。 - 发送消息:在公共频道群发,或点击左侧某账号切换一对一私聊。私聊消息会显示已送达状态。
- 文件共享:在频道内切换至「文件」标签,支持上传、下载、预览与删除共享文件。
- 接收通知:窗口关闭时收到消息,悬浮按钮会出现未读角标,并触发桌面通知(需首次点击授权)。
注意事项¶
- 消息容量:私聊的离线补发队列(outbox)每账号上限 200 条,超出则丢弃最旧消息。
- 文件缓存:当共享文件的所有者离线时,用户只能访问已缓存的文件,无法拉取新文件,需等待所有者上线。
- 安全限制:密码仅存储哈希,不做跨机校验;传输为明文,仅适用于可信局域网。
- 状态重置:未读计数为浏览器会话状态,刷新页面后会清零。
- 隐私风险:无端到端加密,请勿在不可信网络中使用。
结语¶
lan-im 为 DSH 本地多节点协作提供了轻量级的即时通讯与文件共享方案。它通过 WebSocket 和 mDNS 实现了免服务器的局域网通信,适合在内部网络环境下的开发者使用。