前言¶
在 DeepSeek Harness(DSH)里,一次会话可能包含多轮消息、工具调用和上下文统计。需要让同网络里的另一台设备查看这段会话时,直接开放主服务端口并不合适。DSH 的插件形态提供了一个更具体的做法:不把主 harness 暴露出去,而是为当前会话生成一个只读、可撤销、可过期的局域网分享链接。
下面介绍 zljr/dsh-share。它是一个面向 web profile 的 DSH 插件,由 zljr 维护,MIT 许可证。
这是什么¶
dsh-share 的核心作用,是把当前会话冻结为一份只读快照,并生成同一局域网设备可打开的链接。
它会在会话头部增加 Share 按钮。点击后,插件把当前会话整理为自包含、只读的 HTML 页面,并给出 token URL。分享页面由单独的只读 HTTP 服务器提供,主 harness 保持 loopback-only,即 127.0.0.1。
核心功能¶
分享入口¶
- 在会话头部增加
Share按钮。 - 一键把当前会话冻结为自包含、只读的 HTML 快照。
- 生成同一局域网设备可用的 token URL。
只读服务¶
- 由单独的只读 HTTP 服务器提供快照页面。
- 仅暴露
GET /s/<token>。 - 分享服务器默认绑定
0.0.0.0:3081。 - 分享页面无 JavaScript、无外部资源。
快照内容¶
- Markdown 渲染,转义原始 HTML 并阻止
javascript:URL。 - 长消息折叠预览,连续工具调用合并为一组。
- 显示会话统计和上下文占用构成条。
- 明暗主题跟随
prefers-color-scheme。 - 智能选择 LAN IP 并过滤虚拟适配器。
链接管理¶
- 使用
128-bit随机 token。 - 支持撤销分享。
- 支持可选过期:
1h / 24h / 7d。 - 分享状态持久化到
~/.dsh/dsh-share.json。
插件接口¶
插件暴露 /dsh-share RPC,操作包括:
create
revoke
list
安装与启用¶
npm 安装¶
先执行下面命令,把插件加入 web profile:
dsh plugin --profile web add @zljr/dsh-share
然后启动 web profile:
dsh --profile web
从源码安装¶
本地开发时,先安装依赖并构建产物:
pnpm install
pnpm build
再用绝对路径把本地目录安装到 web profile:
dsh plugin --profile web add /absolute/path/to/dsh-share
最后启动 web profile:
dsh --profile web
典型用法¶
1、打开任意会话,点击会话头部的 Share。
2、首次使用时,分享服务器懒加载启动。
3、通过浏览器打开形如 http://192.168.1.20:3081/s/<token> 的链接。
4、在分享界面可设置 1h / 24h / 7d 过期、复制链接或撤销。
经过上面的步骤,同一局域网中的设备可以查看已经冻结的会话快照。该快照在创建后不会重新读取会话存储。
配置¶
可以用环境变量或 cordis.patch.yml 配置分享服务器。示例值如下:
DSH_SHARE_HOST=0.0.0.0
DSH_SHARE_PORT=3081
在 Windows 上,首次 0.0.0.0 监听可能触发防火墙提示,需要允许。
适用场景与注意¶
这个插件适合 DSH web profile 用户:需要把当前会话以只读方式分享给同一局域网内的设备,同时不开放主 harness 的命令执行入口。
使用前先确认以下几点:
1、插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
2、分享链接包含 token,泄露后可能被访问;需要停止时撤销或设置过期。
3、分享页是冻结快照,不是实时会话视图。
4、只读分享服务默认绑定 0.0.0.0:3081,只在可信网络内使用。
结尾¶
dsh-share 把“查看一段会话”和“操作 DSH 主服务”分开:分享方得到的是只读、可撤销、可过期的局域网快照,而不是一个开放的主服务入口。
DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
目录页:https://www.skillhub.cn/plugins/zljr/dsh-share
GitHub:https://github.com/zljr/dsh-share