Back to home

rrvvvnnn

dsh-web-file-upload

No description

Stars
1
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-web-file-upload

DeepSeek Harness Web 界面提供的文件上传插件。 在聊天框里像图片一样上传任意文件(PDF、文档、代码、压缩包等),文件保存到会话工作区的 uploads 目录,并自动把文件引用带入消息,让 agent 直接读取。

官方 Web 界面目前只支持图片粘贴/拖拽(非图片文件会提示"只能粘贴图片")。本插件补上了任意文件的上传。

功能

  • 输入框内的文件夹按钮(位于模型选择器左侧),点击选择文件(支持多选)
  • 粘贴文件:在聊天框里 Ctrl+V(从资源管理器复制的文件)→ 自动上传
  • 拖拽文件:把文件拖进聊天框 → 自动上传
  • 文件卡片:上传的文件以卡片形式显示在输入框内;应用可选补丁后可与图片缩略图同区并列(参考 Coze 风格)
  • 图片与文件互斥:图片和文件不能同时添加,避免布局冲突
  • 文件落地到工作区 uploads 目录,agent 可直接读取
  • 发送后自动清空:消息发出后,输入框里的文件卡片自动清空,不残留到下次对话
  • 聊天记录文件卡片:发送的文件在聊天记录中以圆角卡片显示,点击可直接打开文件

安装

一条命令搞定(自动下载 + 自动注册,无需手动改配置):

dsh plugin --profile web add @iamroven/dsh-web-file-upload

然后重启 web 服务(关掉「DSH Web Server」窗口再双击快捷方式),再硬刷新浏览器即可。

插件声明了 dsh.bundle.patch,所以 dsh plugin add 会自动把本包追加为 profile 的 bundle 层, 无需手动往 cordis.patch.yml 里加行。

无需补丁即可使用:安装后上传、粘贴、拖拽、agent 读取都正常(文件卡片显示在输入框底部)。 可选补丁(见 CORE-PATCH.md)带来更优体验:文件卡片与图片缩略图同区并列、聊天记录里显示可点击的文件卡片。

使用

  1. 启动 web 界面后,输入框右侧(模型选择器左边)出现文件夹按钮
  2. 点击选文件,或直接把文件拖进聊天框 / Ctrl+V 粘贴
  3. 文件以卡片出现在输入框内;输入框会附带一行 附件: 文件名
  4. 补上你的问题,发送即可 —— agent 会去 uploads 目录读取文件内容
  5. 发送后输入框卡片自动清空;聊天记录里你发出的消息中会显示文件卡片,点击可直接打开文件

原理

单包双面(Dual-face)插件:

  • 宿主半边(lib/index.js):注册 webServer 路由 POST /dsh-upload/put(接收 base64 文件载荷,写入会话工作区的 uploads 目录),以及 GET /dsh-upload/file(按文件名返回文件内容,供聊天记录卡片点击打开)。
  • 客户端半边(lib/client.js):cordis 客户端插件,在输入框插槽注册文件夹按钮与文件卡片,监听 document 级 paste/drag 事件,通过 fetch 调宿主路由上传。

目录结构

  • package.json
  • LICENSE
  • README.md
  • CORE-PATCH.md
  • lib/index.js 宿主半边(服务端路由)
  • lib/client.js 客户端半边(浏览器 bundle)

License

MIT