前言¶
在 DSH 里做任务时,经常需要把文件交给模型:日志、截图、代码、PDF、压缩包,或一个目录。DSH 本身是「一切皆插件」的架构,社区目录也是独立站点,不等同于 DeepSeek / 幻方官方应用商店。
dsh-airdrop 解决的问题很具体:在 DSH 的网页界面里,把文件拖进窗口,附件就能随消息发出,AI 自动读取文件内容。
这是什么¶
dsh-airdrop 是 DSH 的一个插件,由 demacia1314 维护,许可证为 MIT。
它面向 DSH Web 场景,支持在浏览器中拖入文件或文件夹,并把附件上传到当前会话的工作区。仓库名是 dsh-airdrop,安装包名是 dsh-universal-attachments。
核心能力¶
下面这些能力是插件直接提供的:
- 支持拖拽上传文件/文件夹到 DSH 窗口任意位置。
- 支持远程上传,字节直传服务器会话工作区。
- 支持任意格式附件,不按格式拒绝任何文件。
- 发送前在浏览器里直接预览附件。
- 附件随消息发出,AI 自动读取文件内容。
- 文件只落在当前会话的工作区,会话之间互相隔离。
- 大文件分块上传,网络断了自动续传,网关 413 时自动调小重试,单文件上限 20 GiB。
这里说的「任意格式」,指插件不拦截字节内容;它不代表 AI 一定能读懂每种格式,插件也不会自己去执行或解压你的文件。
安装与启用¶
插件要求 Node.js >=22。
安装命令如下:
dsh plugin --profile web add dsh-universal-attachments
dsh web
安装后需要重启 dsh web 才能生效。当前会话需要有工作区目录,插件把附件落到这个工作区。
注意仓库名和安装包名不一样:
- 仓库名:
dsh-airdrop - 安装包名:
dsh-universal-attachments
安装包名保持不变,不要改,否则会破坏已有安装。
远程访问:用 SSH 隧道¶
DSH 没有内建的多用户认证,不要直接把 DSH Web 暴露到公网。更稳的做法是让 DSH 只监听服务器本机,然后从本地通过 SSH 隧道访问。
在服务器上执行:
dsh web --port 3080
在本地执行:
ssh -L 3080:127.0.0.1:3080 user@你的服务器
然后在本地浏览器打开:
http://127.0.0.1:3080
这样远程 DSH 的上传体验和本地使用更接近:拖入文件后,附件进入当前会话工作区,再随消息发给 AI。
典型用法¶
1、先安装插件并启动 DSH Web:
dsh plugin --profile web add dsh-universal-attachments
dsh web
2、确认当前会话有工作区目录。
3、在 DSH 网页窗口里拖入文件,或拖入整个文件夹。
4、发送前可以在浏览器里预览附件。
5、点击发送,附件随消息发出,AI 自动读取文件内容。
如果是大文件,插件会分块上传;网络断开后会自动续传;如果网关返回 413,插件会自动调小分块重试。单文件上限是 20 GiB。
清理与注意事项¶
如果只想清理 dsh-airdrop 的附件文件,先停掉 DSH,然后只删除该插件对应的会话目录和它的元数据文件:
.dsh/uploads/.universal-attachments/<会话标识>.json
不要整个删掉:
.dsh/uploads/
否则可能影响其他内容。
使用这个插件时,还有几个行为需要提前知道:
- 浏览器一般不报告空目录,所以完全空的文件夹可能不会被保留。
- 同一会话的多个标签页共享一份待发送附件,谁先点发送,谁就带走当时已传完的文件。
- 插件以当前
dsh进程权限运行,安装前应先检查源码和许可证。 - 插件只负责把文件传到当前会话工作区,不负责执行、解压或解析所有文件内容。
链接¶
- GitHub:https://github.com/demacia1314/dsh-airdrop
- 插件目录页:https://www.skillhub.cn/plugins/demacia1314/dsh-airdrop