usavv1547-cyber/dsh-plugin-inline-image
usavv1547-cyber★ 0JavaScript最后同步: 2026-08-18
—
README 摘要
dsh-plugin-inline-image DSH(DeepSeek Harness)Web 插件:在 Web 服务器上开放一条 受严格约束的只读图片路由 /dsh-image/ / ,让 agent 可以把工作区里的图片 直接内嵌显示在对话中 , 无需点击文件链接,也无需临时起本地 HTTP 服务器。 为什么需要它 DSH Web UI 的 markdown 渲染器会把 http(s) 图片链接渲染成 ,但: - 服务器没有为工作区文件提供任何静态路由(未命中的路径全部回落到 SPA); - 渲染器的 URL 消毒器只放行 http: / https: / mailto: , data: 内嵌被拒绝。 因此 agent 生成的图表(matplotlib PNG 等)之前只能以"可点击文件"形式给出。装上本插件后, agent 在消息里写: 图片就会直接显示在对话里。 安装 ⚠️ 安装后需要 重启 dsh web 才会加载插件,重启会短暂中断当前 Web 会话。 本地开发时可用 dsh plugin --profile web add file:/本地路径/dsh-plugin-inline-image 代替第 1 步。 配置( /.dsh/profiles/web/cordis.patch.yml) 在 cordis.patch.yml 里追加: 不配置 roots 时,插件会自动回退到 harness 已注册的全部 workspace (按 workspace id 作为 alias),方便直接用现有工作区。 使用 配置了 alias sixsigma 指向 /Users/guoguo/6sigma 后: 消息内容 效果 内嵌显示 /Users/guoguo/6sigma/fig.png 内嵌显示子目录图片 给 agent 的提示词可以加一句: "要内嵌展示图片时,用相对链接 /dsh-image/ / ,如 。" 安全设计(纵深防御) 1. 只允许 GET / HEAD ,其余方法返回 405; 2. 逐段校验 :每个路径段先 URL 解码,段不得为空、不得为 . / .. 、 不得在解码后包含 / 、 \ 、NUL( %2e%2e 、 ..%2f 等编码穿越均被拒); 3. 词法包含检查 : resolve + normalize 后必须仍在 root 之下,否则 403; 4. 真实路径检查 : realpath() 解析符号链接后再次校验必须仍在 root 之下, 防止 root 内的符号链接逃逸到任意文件(403); 5. 扩展名白名单 :仅常见栅格图格式(png/jpg/jpeg/webp/gif/avif/bmp/ico); SVG 默认 415(可选 allowSvg 打开);Content-Type 一律由白名单推导; 6. 服务器…
在 GitHub 查看完整 README →分类
DeepSeek Harness: Everything is a Plugin.
★ 182,325
amruthpillai/reactive-resumeA one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
★ 41,477
anywhere-labs/deepseek-harness-desktop为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 17,784