SilasSolivagus/dsh-plugin-multimodal
SilasSolivagus★ 0JavaScriptLast synced: 2026-08-17
DeepSeek Harness (dsh/Cordis) plugin: makes the text-only V4 model multimodal via a pre-step hook. image/video/audio -> local VLM/ASR -> injected text. Zero paid API.
README excerpt
dsh-plugin-multimodal 给 DeepSeek Harness( dsh / Cordis)直接加上多模态能力(图 / 声 / 视频)的插件。 录屏 Demo 真实终端录屏(图 / 视频 / 音频三模态,纯文本 V4 当主脑):插件在 agent/pre-step 把媒体翻译为文字注入,V4 据此作答。录屏由 asciinema 录制、 scripts/cast2gif.py 渲染为 GIF。 它做什么 挂上这个插件后,基于 DeepSeek 的 Agent 能"看见 / 听见"图片、音频、视频。 关键实测结论(2026-08-17,真发请求验证) :DeepSeek 的对话 API ( deepseek-v4-pro / deepseek-v4-flash / deepseek-chat ) 是纯文本的 , 收 image url 会返回 400 unknown variant image url, expected text 。 因此"直接多模态"V4 自己做不到, 必须靠插件侧做视觉翻译 。本插件正是那个机制: 媒体 → 可插拔视觉 / 语音后端 → 文字描述 → 作为 text block 注入 V4, 让 V4 当"主脑(文本)"、插件当它的"眼睛"。 三条模态路径(按文件类型自动分派) - 图片(image) :路径 / URL → 视觉后端(moondream 等本地 VLM)翻成文字。 - 视频(video) : ffmpeg 按 videoFps 抽最多 videoMaxFrames 张帧 → 逐帧送视觉后端 描述 → 拼成带 Frame i/N 标号的文本块。 - 音频(audio) : whisper CLI(本地 ASR)或外部 ASR HTTP 端点翻成文字转录。 三种接入方式: - pre-request hook(默认开启,最"直接") :在 agent/pre-step (Harness 官方 waterfall 扩展点,决定"模型能看到什么")上注册监听器,自动扫描每条消息里的 媒体路径 / URL,按类型经可插拔后端翻译为文字后注入——模型无需主动调工具即"看见 / 听见"。 - read media 工具 :模型也可主动调用,显式处理媒体文件(同样按类型分派)。 - set multimodal backend 工具 :模型 / 用户可在 会话内实时切换 后端或模型 (如把 vision model 换成更强模型,或中途关掉 auto inject ),无需重启 dsh。 - 单条消息内联提示 :在媒体路径后紧跟 @vision= / 或 @asr= / ,仅对 这一条消息 临时覆盖后端 / 模型,不动全局配置。 例: 看 /tmp/x.png @vision=moondream 、 /a.mp4 @v…
View full README on GitHub →Category
DeepSeek Harness: Everything is a Plugin.
★ 140,164
anywhere-labs/deepseek-harness-desktop为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 10,272
awesome-dsh-plugin/awesome-dsh-pluginA curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 6,371