前言¶
在 DSH 里做对话或调试智能体时,附件往往来自本机:截图、日志、文档从资源管理器拖进输入框上方即可。手机上的照片、扫描件或现场拍的图,常见做法是发到微信/邮件再在电脑上保存,或装同步盘、第三方传文件工具,步骤多且容易打断思路。DeepSeek Harness 的插件模型允许在 Host 与浏览器侧扩展能力;dsh-file-bridge 走另一条路:手机浏览器通过局域网 HTTP 上传,内容进入当前会话草稿附件栏,与在电脑上拖文件等价,发送时机和配文仍由你决定。
这是什么¶
dsh-file-bridge(GitHub:DeadLink233/dsh-file-bridge)由维护者 DeadLink233 发布,在 DSH 插件社区目录中归类为联网工具。一句话定位:在纯局域网内,把手机拍照或选择的任意文件传到当前 DSH 对话输入框上方的草稿附件栏,电脑端无需额外操作接收。
数据路径示意:
手机浏览器 ──HTTP──> 插件自己的局域网端口 ──队列──> DSH 页面轮询 ──> 草稿附件栏
README 注明:除 vendor/QRCode 外,仓库代码、文档、测试与提交信息均由 AI 生成并在真实 DSH 环境中验证;使用前请自行审查代码与备份,按「现状」使用。当前 package 版本为 1.2.0,MIT 许可证。
核心功能¶
下面介绍 README 中已写明的行为,不含格式转换或云端中转。
- 拍照与任意文件:支持拍照,也支持 PDF、Office、压缩包、音视频及其他类型;手机端可多选上传。
- 纯局域网:不经过云端、不依赖手机 App;配对二维码在本地生成,不调用在线二维码服务。
- 与 DSH GUI 分离:不动 DSH 自带 Web 服务(GUI 仍在回环地址);插件另起传输端口(默认
8787)。 - 草稿附件语义:文件进入当前会话草稿附件;新建对话尚未发送第一句时,Hero 顶部也有「手机传文件」入口;若文件先到而 Session 尚未就绪,Host 队列会等待,空白 Session 出现后自动注入。
- 实现形态:无 npm 依赖、无构建步骤;二维码编码器位于
vendor/QRCode(第三方 MIT)。
兼容性:engines.dsh 为 >=0.2.1-rc.2 <0.3.0,README 写明已在 DSH 0.2.1-rc.2 验证;大版本升级后建议按仓库「验证」小节重新测试。
安装与启用¶
插件以独立仓库形式存在,不依赖 DSH Hub 是否收录。安装命令须以 README 为准。
从 GitHub 安装(推荐)¶
固定到某个 commit,避免默认分支后续变动:
dsh plugin --profile <profile> add github:DeadLink233/dsh-file-bridge#<commit-sha>
也可在 DSH 侧边栏 Plugins → Add plugin 填写 GitHub 仓库地址。
从 npm 安装(发布后)¶
dsh plugin --profile <profile> add dsh-file-bridge
从 DSH Hub 安装(可选)¶
DSH Hub(例如目录页 https://www.skillhub.cn/plugins/DeadLink233/dsh-file-bridge)是社区维护的插件索引,与 DeepSeek / 幻方无官方从属关系;是否收录不影响 GitHub 或 npm 安装。
本地目录安装¶
- 将仓库源码解压或放到本地,得到
dsh-file-bridge/文件夹。 - DSH → Plugins → Add plugin。
- 填入文件夹绝对路径,不要填 zip 路径。
- 确认插件行为为
applied、开关为开。
首次监听时若系统弹出防火墙提示,请允许专用网络 / 本地网络入站,否则手机无法连接。
可选配置写在 cordis.patch.yml 对应插件行的 config 下,字段均可选:
- insert:
- id: photo-bridge
name: 'dsh-file-bridge'
config:
port: 8787
# bind: 192.168.1.5
# maxBytes: 20971520
# keepFiles: true
# retentionHours: 72
# token: '0123456789abcdef0123456789abcdef'
| 字段 | 默认 | 说明 |
|---|---|---|
port |
8787 |
传输端口;占用时插件启用失败并报错 |
bind |
自动探测 | 只绑定具体网卡 IPv4;拒绝 0.0.0.0 / :: |
token |
自动生成 | 16–64 位十六进制,持久化于 state |
maxBytes |
20971520 |
单文件上限 20 MB,可调至约 200 MB |
keepFiles |
true |
ack 后是否保留原文件到 kept/ |
retentionHours |
72 |
超时从队列与 inbox 清理 |
典型用法¶
先做配对,再在手机上传,最后回到电脑确认附件。
- 点开 手机传文件(普通会话在输入框下方;新对话在 Hero 顶部)。
- 手机与电脑连接同一 Wi-Fi,用手机相机扫描面板二维码(打不开时用「复制链接」)。
- iOS / Android 可将页面「添加到主屏幕」,下次从图标进入。
- 在手机上点 拍照,或点 文件 多选上传;看到「电脑已收到」即可。
- 回到 DSH:附件已在输入框上方附件栏,输入问题后发送。
配对 URL 含 token;token 保存在本机 DSH home 的 photo-bridge/state.json。卸载插件不会自动删 token;要轮换 token,删除该 state.json 后重启 DSH,旧链接立即失效。
数据目录(Windows 多为 %USERPROFILE%\.dsh\photo-bridge\,macOS / Linux 多为 ~/.dsh/photo-bridge/):
state.json:配对状态inbox/:尚未被 DSH 收走的文件kept/:已收走但保留的原文件
适用场景与注意¶
适合谁:经常在 DSH 里贴图、贴文档,且素材先在手机上产生;希望同一 Wi-Fi 内完成传输、不装额外 App、不把 DSH 主 GUI 暴露到局域网的用户。
权限与边界(安装前请确认):
- 在指定网卡上监听 HTTP 端口,供手机页面上传;通过 DSH 回环 API 注册
/photo-bridge/*路由,由浏览器半轮询并注入草稿。 - 在本机
<DSH home>/photo-bridge/写入状态与文件;手机端仅用<input type="file">与capture,不调用getUserMedia,不扫描手机文件系统。 - 插件以当前 DSH 进程权限运行;README 声明无
postinstall等安装生命周期脚本,但仍应在安装前阅读源码与 MIT 许可证,自行评估风险。
已知限制(摘自 README):
- 附件能否被模型读取 PDF/Office/HEIC 等,取决于 DSH 附件管线与模型能力,本插件不做转码。
- 不同网段、路由器 AP 隔离会导致连不上;可改用电脑热点。
- 微信等内置浏览器可能忽略
capture;需「在浏览器打开」或使用 Safari / Chrome。 - 同一 Wi-Fi 下持有配对链接者可向你的草稿塞文件;链接泄露时删除
state.json换 token。
卸载:在 Plugins 关闭并移除插件;传输端口随卸载或重启释放;photo-bridge/ 目录需手动删除若不再需要历史文件。
结尾¶
dsh-file-bridge 把「手机上的文件」和「DSH 当前会话草稿附件」用局域网队列接起来:电脑不用开接收窗口,也不把对话 GUI 绑到公网。查阅细节与 commit 固定安装方式见 GitHub 仓库 DeadLink233/dsh-file-bridge;社区目录页 skillhub.cn/plugins/DeadLink233/dsh-file-bridge 便于检索,安装仍以 README 命令为准。