xianyu-ya/dsh-imgpt

xianyu-ya★ 0JavaScriptLast synced: 2026-08-16

Open on GitHub

DSH 让任何模型都能发送图片:自动将拖入对话框的图片存储到工作路径下,并将路径自动粘贴到对话框中。DSH enables any model to send images: it automatically saves images dragged into the dialog box to the working path and pastes the path into the dialog box.

README excerpt

📎 imgpt — DSH 图片→路径 插件 English · 中文 Image to Path :让任何模型都能发送图片。粘贴/拖拽图片 → 自动保存到工作目录 → 输入框插入文件路径文本 → 纯文本发送,绕开非视觉模型拦截。 imgpt (image-to-path)是 DeepSeek Harness(DSH)Web GUI 的插件。DSH 底层在发送 type: 'image' 内容块时会检查当前模型的 inputModalities ——DeepSeek 等 非视觉模型 被声明为仅支持文本,消息一旦含图片就会被拒绝( MODEL DOES NOT SUPPORT IMAGES ,提示"当前模型不支持图片")。imgpt 不改动任何底层代码 ,而是改变图片的传递形态:把图片落盘成文件,消息里只带文件路径。 ✨ 功能特性 功能 说明 🖼️ 粘贴图片 输入框 Ctrl+V 粘贴截图/图片 → 自动保存 + 插入路径 🎯 拖拽图片 拖入图片 → 自动保存 + 插入路径(无原生遮罩残留) 📎 启用开关 输入框工具行开关,随时切换「路径转换」与「原生图片通道」 🗑️ 清除缓存 双击确认后清空 .dsh-images ,徽标显示清除数量 📋 状态徽标 输入框下方实时显示:启用状态 / 保存进度 / 失败原因 / 清除结果 👁️ 视觉看图 配合视觉模型辅助,发送路径 + "识别这张图片"即可读图 🎬 效果示意 🔧 工作原理 Client 半体 (浏览器, client/imgpt-web ) - 在 document 捕获阶段 监听 paste / dragenter / dragover / drop - 检测到图片后 preventDefault + stopPropagation (拦截 DSH 原生图片通道,同时抑制原生拖拽遮罩) - 用 FileReader 把图片读为 base64, fetch POST 到 Host 端点 - 拿到返回的文件路径后,以 合成 paste 事件 把路径文本插入输入框(复用 InputBar 原生文本插入链路) Host 半体 (服务端, plugins/imgpt-host ) - 在 DSH webServer 注册两个 HTTP 端点: - POST /imgpt-save — 校验会话 → 用 node:fs 把 base64 解码写为二进制图片到 .dsh-images - POST /imgpt-clear — 递归统计并删除 .dsh-images - 工作目录取自会话头部的 cwd 为什么这样设计 :常驻插件无法使用动态插件专用的 harness.handle / host.call RPC,且 fs 服务的沙盒策略对非会话上下文会拒绝写入——因此采用「Client fetch + H…

View full README on GitHub →
Skins / UIdsh-plugindsh-plugin-marketdsh-plugin-themedsh-plugins

Category