dsh-airdrop:把文件拖进 DSH,AI 就能读

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜