DeepSeek Harness (DSH) 插件:dsh-drop-any-file

前言

DeepSeek Harness (DSH) 的 Web 聊天界面默认只支持拖拽图片。对于需要处理 PDF、配置文件或数据集的开发者来说,这带来了额外的操作成本。dsh-drop-any-file 插件解决了这个问题,它拦截了浏览器的拖拽事件,让非图片文件也能被保存到当前会话的工作区。

插件简介

这是一个由 Zenjibad 维护的插件,基于 MIT 协议。它的核心功能是让 DSH 支持任意文件类型的拖拽上传,并将非图片文件持久化存储,方便智能体 Agent 读取和处理。

核心功能

  • 支持任意文件类型:不再限制为图片,PDF、zip、txt、csv、bin 等文件均可接受。
  • 保存到工作区:非图片文件会被保存到当前活跃会话的 workspace 目录,Agent 可以通过标准工具读取。
  • 图片处理不变:仅包含图片的拖拽操作保持原有行为,不干扰内置功能。
  • 绕过限制:拦截了 Composer 的图片-only 拒绝逻辑,防止错误提示弹出。
  • 交互反馈:拖拽时显示主题化的覆盖层,保存成功或失败会弹出 Toast 通知。
  • 安全限制:对文件名进行清洗,并对文件大小进行限制(最大 80MB body / 60MB file)。
  • 主题适配:覆盖层和通知样式跟随 DSH 的浅色/深色模式。

安装与启用

通过命令行安装,插件会作为 Profile bundle 持久化:

dsh plugin --profile web add github:Zenjibad/dsh-drop-any-file

安装完成后,必须硬刷新浏览器标签页(Ctrl+F5)才能生效。

使用示例

  1. 在 DSH Web 界面打开一个会话。
  2. 将非图片文件(例如 PDF 或 .txt)拖拽到聊天窗口上。
  3. 观察覆盖层提示,文件会被保存到当前会话的工作区目录。

注意事项

  • 依赖环境:需要 DSH 版本 ≥ 0.1 且启用 Web Profile。
  • 会话要求:如果当前没有打开会话,插件处于闲置状态,不会生效。
  • 文件大小:超过 60MB 的文件会被拒绝。
  • 刷新要求:安装或更新客户端插件后,必须执行硬刷新(Ctrl+F5),热更新不会加载新插件。
  • 无配置文件:插件行为由源码中的常量控制,没有独立的配置文件。

链接

  • GitHub 仓库:https://github.com/Zenjibad/dsh-drop-any-file
  • 插件目录:https://www.skillhub.cn/plugins/Zenjibad/dsh-drop-any-file
羽毛球分组比赛记分
小程序二维码

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

小夜