在 DeepSeek Harness (DSH) 的开发或调试场景中,经常需要将本地文件、代码片段或完整的项目目录引入对话上下文。传统做法往往需要手动复制文件到工作区、粘贴路径或进行繁琐的文件管理操作。dsh-postman 旨在解决这一痛点,允许用户直接将文件与文件夹“邮”进对话,无需额外的文件系统操作。
这是一个 DeepSeek Harness 的 Web 客户端插件,由 zhousun55-byte 维护。它提供了一套文件上传管线,支持图片以消息块形式呈现、文本内容以内联代码块写入输入框,以及文件夹按目录结构落盘。
核心功能¶
- 文件与图片处理:支持多选上传。图片(PNG/JPG/WebP/GIF,大小 ≤5 MiB)走 DSH 原生附件管线,作为消息块显示,模型侧由视觉桥接(如 modlens)自动转写。HEIC 等不支持或超限的图片会自动退回路径上传。文本文件的内容会以内联代码块的形式直接写入输入框草稿,模型立即可见。
- 文件夹处理:利用 Chrome 的
webkitdirectory属性支持整目录上传。文件会按目录结构落盘到~/.dsh/uploads/<时间戳>-<文件夹名>/...。文件夹内的图片(上限 12 张)同样以图片形式加入消息。二进制文件会注入路径与大小,模型可用read工具读取。 - 零依赖:插件纯使用 Node 内置模块 + DSH 原生管线,无构建步骤,克隆即用。
安装与启用¶
把本仓库放进 Web profile 的依赖并声明插件行,dsh 会按包名在 /plugins/dsh-postman/client.js 提供浏览器半区。操作步骤如下:
- 在
~/.dsh/profiles/web/package.json中增加依赖:
"dsh-postman": "link:/path/to/dsh-postman"
(发布后可改用版本号依赖)
- 在
~/.dsh/profiles/web/cordis.patch.yml中增加插件行:
- insert:
- id: ui-upload
name: 'dsh-postman'
- 执行安装并重启客户端:
pnpm --dir ~/.dsh/profiles/web install
# 重启 dsh web(客户端改动仅需刷新页面)
典型用法¶
在输入框工具行左侧的 + 命令菜单里使用 /upload,该命令提供两个选项:上传文件 / 上传文件夹。工具行本身不额外占用按钮。
- 上传文件:选择本地文件后,文本文件内容会直接写入输入框草稿,模型立即可见;图片会以消息块形式出现在对话中。
- 上传文件夹:选择文件夹后,系统会按目录结构将文件落盘,并在草稿中注入文件清单与文本文件内容预览(合计约 2.4 万字符封顶)。
注意事项¶
- 格式与大小限制:单文件上限 25 MiB。图片仅支持 PNG/JPG/WebP/GIF(≤5 MiB),HEIC 等不支持的格式或超限图片会自动退回路径上传。
- 文件夹图片限制:文件夹内图片上限 12 张。
- 权限与安全:目录权限为
0700,文件权限为0600。插件以当前 dsh 进程权限运行,跨站 Origin 请求会被拒绝。 - 文件名冲突:落盘时若文件名冲突会自动添加
-2/-3后缀,永不覆盖。
结语¶
dsh-postman 通过原生管线与零依赖设计,简化了 DSH 环境下的文件交互流程。如果你需要在会话中频繁引入代码或文档,可以直接使用 /upload 命令,无需再进行文件路径的复制粘贴。