🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

附件转路径 loudMore/dsh-drop-to-path

DeepSeek 客户端
loudMore46 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

把图片、PDF、Office 文档、压缩包、视频、音频拖入或粘贴进 DeepSeek…

39.5/100
综合分
11
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/loudMore/dsh-drop-to-path.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 46 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@dsh-external/dsh-drop-to-path(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 06:17:05

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    lib/index.js:53
    parsed = JSON.parse(await readFile(store, 'utf8'))
  • 写入本地文件
    lib/index.js:132
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    lib/index.js:134
    await writeFile(target, bytes)
  • 发起网络请求
    lib/client.js:75
    return fetch(IMPORT_ROUTE, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

4 张 · 点击查看大图

功能亮点

  • 拖入或粘贴文件
  • 自动转为工作区路径
  • 图片保留原生附件体验

DSH 插件:图片和文件直达纯文本模型——图片保留原生附件体验,PDF、Office、压缩包、视频、音频在附件栏显示为方块,点击发送时自动追加工作区路径,配合 dsh-vision-toolkit 粘贴即看图。

README

由 DeepSeek 最新模型翻译生成
dsh-drop-to-path 把图片、PDF、Office 文档、压缩包、视频、音频拖入或粘贴进 DeepSeek Harness,它们就会以工作区文件路径的形式送到纯文本模型面前:图片保留原生附件体验(预览/移除),其他文件显示为附件栏里的方块标签,点击发送时路径自动附加进消息。 演示 完整操作流程 拖入图片、PPT、TXT、ZIP → 附件栏出现文件方块(与图片缩略图并排)→ 点击发送 → 模型收到工作区文件路径 效果展示 效果:图片与文件以工作区路径送达纯文本模型,配合 vision / 文档工具即可读取。 为什么做这个 我在 DeepSeek Harness 里用纯文本模型(deepseek)写代码,需要经常把截图发给 Agent 看。但 DSH 的图片附件走模型原生附件通道,纯文本模型会在发送前被预检拦下,输入框直接弹出系统提示: 当前模型不支持图片,请切换支持图片的模型 DSH 发送图片附件时的系统报错 底层是宿主的图片准入预检(attachment-error): Model "deepseek-v4-flash" does not support image input. 配合 dsh-vision-toolkit 可以解决"看图"的问题——但它的工具只认工作区文件路径,图片必须以路径形式进入消息。
展开完整文档(README 剩余 1 节)
dsh-drop-to-path

把图片、PDF、Office 文档、压缩包、视频、音频拖入或粘贴进 DeepSeek Harness,它们就会以工作区文件路径的形式送到纯文本模型面前:图片保留原生附件体验(预览/移除),其他文件显示为附件栏里的方块标签,点击发送时路径自动附加进消息。

演示

完整操作流程

拖入图片、PPT、TXT、ZIP → 附件栏出现文件方块(与图片缩略图并排)→ 点击发送 → 模型收到工作区文件路径

效果展示

效果:图片与文件以工作区路径送达纯文本模型,配合 vision / 文档工具即可读取。

为什么做这个

我在 DeepSeek Harness 里用纯文本模型(deepseek)写代码,需要经常把截图发给 Agent 看。但 DSH 的图片附件走模型原生附件通道,纯文本模型会在发送前被预检拦下,输入框直接弹出系统提示:

当前模型不支持图片,请切换支持图片的模型

DSH 发送图片附件时的系统报错

底层是宿主的图片准入预检(attachment-error):

Model "deepseek-v4-flash" does not support image input.

配合 dsh-vision-toolkit 可以解决"看图"的问题——但它的工具只认工作区文件路径,图片必须以路径形式进入消息。于是每次看图都要:截图 → 存到工作区 → 手动把地址写进消息。非常笨重。而除了图片之外,DSH 根本不允许把 PDF、Office 文档、视频等任何非图片文件作为附件发送。

在另一个工具里体验过"粘贴即用"之后,我决定把这个体验搬回 DSH:附件 UI 完全保持原生,图片和文件只在点击发送的瞬间转换成路径。于是有了这个插件。

工作原理

flowchart LR
A["粘贴 / 拖入"] --> B{"文件类型?"}
B -->|"图片png / jpg / webp / gif"| C["原生附件卡片预览 / 移除"]
C --> D["点击发送"]
D --> E["上传 → workspace/.drops/"]
E --> F["消息转为纯文本路径"]
F --> G["纯文本模型用 vision / 文档工具处理"]
B -->|"其他文件pdf / docx / xlsx / 视频…"| H["附件栏方块标签格式图标 · ✕ 移除"]
H --> D

- 图片准入预检(dsh-host-apiproxy 的 attachment-error)被绕过:发送时根本没有 image 块,模型收到的全是文本。
- 添加文件时不会往输入框写任何路径——路径在点击发送时才自动附加,和图片转换完全一致。
- 上传失败绝不静默:弹出可见提示说明原因,再回退到原生发送,消息不会丢失。
- 支持粘贴与拖入;图片、文件、混合批次都按顺序上传,以一段路径文本一次送达。

支持的文件类型

| 类型 | 扩展名 | 上限 | 体验 |
| 图片 | png jpg jpeg webp gif | 30MB | 原生附件卡片(预览/移除),发送时自动转路径 |
| 文档 | pdf doc docx xls xlsx ppt pptx txt md csv json | 100MB | 附件栏方块标签(格式图标、hover 显全名、✕ 移除),发送时附加路径 |
| 压缩包 | zip | 100MB | 同上 |
| 视频 | mp4 mov webm mkv avi | 100MB | 同上 |
| 音频 | mp3 wav flac m4a | 100MB | 同上 |

图片保持原生附件体验;非图片文件 DSH 本身不允许作为附件发送,本插件把它们变成附件栏方块,发送时自动附加路径——不需要预览,Agent 拿到路径后可用 PDF/文档解析等工具处理。

DSH 附件仅支持这些图片格式

与 dsh-vision-toolkit 配合(推荐搭配)

🎯 强烈推荐搭配 dsh-vision-toolkit 一起使用——它是纯文本模型的眼睛,本插件是传送带:

- 本插件解决"图片或文件怎么变成路径"(发送时自动转换);
- dsh-vision-toolkit 解决"路径怎么变成视觉能力"(图片问答、长截图 OCR、UI 还原、目标定位、像素对比等 10 个结构化视觉工具,已适配 DSH Credentials / 托管运行时 / Web Settings)。

安装:dsh plugin --profile web add <dsh-vision-toolkit 路径>(详见其仓库 README)。两者配合,纯文本模型即可获得接近多模态模型的看图体验。

| 场景 | 之前 | 现在 |
| 看图问答 | 截图 → 存工作区 → 手写路径 | 截图 → Ctrl+V → 回车 |
| 多图对比(pixel diff) | 同上,每个路径手写 | 发两张图即可 |
| 长截图 OCR / UI 还原 | 同上 | 发图即可 |
| 分析 PDF / xlsx / 视频 | 拷进工作区,手写路径 | 直接拖入,发送即可 |

同类插件对比

- dsh-drag-and-drop:拖放文件→直接在输入框插入原始路径,不复制文件。适合"引用工作区已有文件";图片仍会以附件形式发送(纯文本模型下仍会被拒),且不支持粘贴。
- 本插件:保留原生附件 UI(预览/移除),自动把图片和文件复制到工作区、发送时转成路径,支持粘贴与拖入,非图片文件以可移除的方块标签显示在附件栏。专为"发图发文件给纯文本模型"设计。

两者互补:引用已有文件用 dsh-drag-and-drop,发送截图和新文件用本插件。

安装

前置:DeepSeek Harness(Web profile),Node.js,dsh CLI。

方式一:dsh plugin 安装(推荐)
dsh plugin --profile web add /path/to/dsh-drop-to-path

方式二:手动(与本仓库 layout 一致)
1. package.json 的 dependencies 加: "@dsh-external/dsh-drop-to-path": "link:/path/to/dsh-drop-to-path"
2. dsh.profile.bundles 数组加: "@dsh-external/dsh-drop-to-path"
3. 将目录(含 lib/)复制到 profiles/<name>/node_modules/@dsh-external/dsh-drop-to-path

安装后重启 Web profile(双击启动器 / 重启 dsh web)生效。无任何设置项。

使用

1. 像平时一样粘贴或拖入图片,附件卡片照常显示(可预览、可叉掉);
2. 拖入或粘贴其他文件(pdf / office / zip / 视频 / 音频)——附件栏出现带格式图标的方块标签,与图片缩略图并排(hover 显示全名,✕ 移除);
3. 输入文字(可选)后发送 —— 不发送任何附件;图片和文件被上传,工作区路径自动附加进消息;
4. agent(配合 dsh-vision-toolkit)用 vision_glance / vision_pixel_diff 等读取图片,用 PDF/表格工具处理文档。

文件保存在 <workspace>/.drops/ 目录,可定期清理。

文件结构

dsh-drop-to-path/
├─ package.json bundle 声明(dsh.bundle.patch / dsh.client) ├─ cordis.patch.yml 挂载行(insert drop-to-path) ├─ lib/ │ ├─ index.js host:POST /_dsh/drop-to-path/import 路由 │ └─ client.js browser:拦截 + sendSession 包装 + 方块标签 ├─ assets/ 演示 GIF、效果拼接图、social preview、报错截图 ├─ README.md ├─ README.zh.md └─ ADAPTING.md 升级适配指南(必读)

实现要点

- host 侧(lib/index.js):注册 webServer 服务路由 POST /_dsh/drop-to-path/import,接收 { name, dataBase64 },校验(扩展名白名单;图片 ≤30MB、其他文件 ≤100MB;Unicode 安全文件名清洗防路径穿越),写入会话工作区 .drops/,返回 { ok, value: { path, kind } }。
- 工作区定位:读取 $DSH_HOME/storages/workspace.json(durable workspace registry),取 updatedAt 最新的 workspace 路径。
- browser 侧(lib/client.js):
- 纯图片拖放完全放行原生流程(附件栏 + 蒙版关闭);
- 含非图片文件的拖放/粘贴被拦截:按顺序上传、渲染方块标签,并派发合成 dragend 关闭 DSH 全屏拖拽蒙版(页面不会卡住);
- 在 conversation.sendSession 的原型上包装(实例重建也不失效):发送时把图片附件和文件队列一起上传,路径与你的文字合并为一条消息;
- 方块标签尺寸实时测量图片缩略图大小(默认 62px),带格式图标/配色;MutationObserver 保证 React 重渲染后标签不丢;
- 发送成功后标签自动清空;上传失败弹出可见提示并回退原生发送,消息不会丢失。

兼容性

| DSH 版本 | 状态 |
| 0.1.0-rc.6(本仓库验证环境) | ✅ 可用 |

本插件依赖 DSH 若干未公开的内部接口(服务名、方法签名、存储格式),DSH 升级后可能失效。升级前请先阅读 ADAPTING.md,失效症状与修复步骤都在里面。

贡献与适配

- 问题/想法:GitHub Issues。
- DSH 升级后插件失效:对照 ADAPTING.md 的症状表排查修复,并在适配记录表追加一行。

许可证

MIT
预览分享卡片长什么样 ↓loudMore/dsh-drop-to-path
分享 · DeepSeek Harness Hub
loudMore/dsh-drop-to-path

把图片、PDF、Office 文档、压缩包、视频、音频拖入或粘贴进 DeepSeek…

这是你的仓库?认领条目

回到顶部