dsh-inline-images:讓 DeepSeek Harness 對話直接顯示本地圖片

前言

DeepSeek Harness(dsh)把模型、工具、會話和界面都做成可插拔能力,官方倉庫的說法是「一切皆插件」。智能體在本地幹活時,經常會把截圖、生成圖、導出圖寫成磁盤路徑:Windows 盤符、UNC 共享、POSIX 絕對路徑,或者 Markdown 裏的 ![](本地路徑)。Web 界面默認把這些內容當普通文本或鏈接處理,對話裏只能看到一串路徑,看不到圖本身。

dsh-inline-images 做的事情很具體:掃描助手回覆裏真實存在的本地圖片路徑,改寫成與頁面同源的迴環 URL,交給產品自帶的 Markdown 渲染,把圖嵌進消息正文。本文按社區插件目錄頁、GitHub 倉庫 README 與源碼交叉覈對後整理。需要說明:DeepSeek Harness 由 DeepSeek AI 開源;deepseek-harness-plugin.com 是獨立的社區目錄,與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。

這是什麼

dsh-inline-images 是一款界面增強插件,由 GitHub 用戶 3403473060 維護,倉庫地址是 3403473060/dsh-inline-images,許可證爲 MIT。目錄頁收錄日期爲 2026-08-14;倉庫 package.jsondsh.plugin.json 裏的版本均爲 1.0.0。截至 2026-08-18,目錄頁與 GitHub 上的星標均爲 2。倉庫帶有 deepseek-harnessdsh-plugin 主題。

它解決的問題可以一句話說清:助手回覆裏出現本地圖片路徑時,在 Web 對話正文裏直接把圖畫出來,而不是隻顯示鏈接或路徑文本。dsh.plugin.json 把客戶端平臺標成 web,也就是說它掛在網頁界面上,不是終端 TUI 插件。

核心功能

README 列出的能力,可以和 src/index.tssrc/client.ts 對上。

消息正文內聯渲染

插件在 host 側包裝 llm/stream,在文本塊結束時掃描助手回覆。能識別的路徑形態包括:

  • Windows 盤符路徑,例如 C:\截圖\a.png
  • UNC 路徑
  • POSIX 絕對路徑,例如 /tmp/out.webp
  • Markdown 圖片或鏈接寫法 ![](本地路徑)
  • 反引號包裹的路徑

掃描到候選路徑後,會用文件系統確認文件存在且類型爲文件,再按原始區間替換成:

![](http://127.0.0.1:<端口>/plugins/dsh-inline-images/image?t=<token>&p=<路徑>)

<端口> 取當前 Web 服務端口;<token> 在插件每次激活時隨機生成。圖片字節由 host 上的 webServer 路由即時讀取並返回,URL 與頁面同源,README 寫明這樣可以避開 CSP 和混合內容問題。改寫後的內容仍是純文本 Markdown URL,README 特別指出:純文本模型適配器不會因爲嵌入圖片塊而拒絕。

源碼裏還有幾條明確邊界:以 https:data:file:mailto: 開頭的地址直接跳過,因此遠程圖片鏈接不會被改寫;路徑必須帶支持的擴展名,並且以盤符、UNC 或 / 開頭,相對路徑不會處理。

支持的格式

目錄頁與 README 一致,共 9 種:png、jpg、jpeg、webp、gif、svg、avif、bmp、ico。host 按擴展名設置 Content-Type 後把文件字節寫回響應。

讀取體積有上限:源碼默認最多 20MB;若當前進程裏掛了附件服務,則跟隨附件服務的 maxImageBytes。超限或讀失敗時,這條路由返回 404,對話本身不會被中斷。

點擊放大燈箱

客戶端在 shell.overlay 裏註冊燈箱。點擊正文中由本插件渲染的圖片(src/plugins/dsh-inline-images/image),進入全屏大圖;點背景、點「關閉 (Esc)」或按 Esc 均可退出。其他圖片不會被這個點擊邏輯接管。

可調顯示尺寸

Web 界面打開「設置 → 內聯圖片」,可以改正文圖片的最大寬和高。允許範圍是 64–2400 像素,默認 640×420。數值寫入憑證存儲,鍵名是 INLINE_IMAGE_MAX_WIDTHINLINE_IMAGE_MAX_HEIGHT。保存後,客戶端會給匹配上述迴環 URL 的 img 注入 CSS 的 max-width / max-height

安靜降級

路徑不存在、不是文件、或路徑片段像佔位符(源碼會跳過「路徑」「示例」「佔位」「本地路徑」「某某」「xx」「xxx」這類片段)時,插件靜默跳過,原文保留,不影響對話。llm/stream 上如果請求帶了 purpose 字段,包裝器會直接放行,不做改寫。

安裝與啓用

先有正在運行的 DeepSeek Harness。官方倉庫給出的 Web 啓動方式是:

npx @deepseek-ai/dsh web

或從源碼啓動:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

默認 Web UI 地址是 http://127.0.0.1:3080

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可(不要自行拼接倉庫名):

dsh plugin add github:3403473060/dsh-inline-images

需要可復現安裝時,目錄頁的寫法是在倉庫後面固定 commit。當前 main 最新提交爲 79f8ba778441c86738dedba574f5911fd2b5b2be(2026-08-14),可以寫成:

dsh plugin add github:3403473060/dsh-inline-images#79f8ba778441c86738dedba574f5911fd2b5b2be

如果是從本地克隆開發,README 的構建與安裝步驟是:

pnpm install
pnpm run build
dsh plugin --profile web add ./dsh-inline-images

安裝後可用下面命令確認插件是否出現在當前配置裏:

dsh plugins list

部分插件需要重啓 Web UI 後纔會在界面生效。本插件客戶端聲明平臺爲 web,請在網頁界面裏檢查,而不是隻在純終端會話裏找效果。

典型用法

裝好並啓用後,不需要額外調用工具。只要助手回覆裏寫出一份真實存在的本地圖片路徑,正文就會嘗試把它渲染成圖。設置頁裏的說明用的例子是 C:\截圖\a.png 這類路徑。

可以按下面方式自檢:

  1. 準備一張本地圖片,記下絕對路徑,擴展名落在上面 9 種之內。
  2. 讓助手在回覆中輸出這條路徑,或使用 Markdown 圖片語法指向該路徑。
  3. 若文件存在,消息正文應出現圖片,而不是隻剩路徑文本。
  4. 打開「設置 → 內聯圖片」,改最大寬高後點「應用」,正文中由本插件渲染的圖會按新的上限縮放。
  5. 點擊正文圖片,確認燈箱能打開;點背景或按 Esc 關閉。

如果路徑是虛構示例、文件已經被刪、或只給了相對路徑,正文會保持原樣,這是設計如此,不是安裝失敗。

token 每次激活都會重新生成。插件重新加載或 Harness 重啓之後,舊消息裏已經寫進去的迴環 URL 可能打不開,需要讓助手再次輸出路徑,或重新走一遍當前會話的渲染流程。

適用場景與注意事項

比較適合這些用法:本地截圖對照、智能體剛生成或導出的圖片、工作區裏已經落盤的設計稿 / 圖表。前提是你主要在 DSH 的 Web UI 裏看對話,並且圖片就在當前 dsh 進程能讀到的文件系統上。

使用前注意這幾件事:

  • 權限與安全。目錄頁寫明:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。host 側的圖片路由會按查詢參數讀本地文件字節,雖然用隨機 token 做了校驗,仍應按不信任任意來源插件的標準做源碼審閱。
  • 只處理本地絕對路徑。HTTP(S) 圖片、data URI、file: 鏈接、相對路徑都不會被改寫。
  • 只改助手流式文本。能力掛在 llm/stream 的文本塊上,不是給用戶消息做通用 Markdown 增強。
  • Web 界面。客戶端平臺是 web;沒有 Web UI 時,這條插件沒有對應的燈箱和設置頁。
  • 體積上限。默認按 20MB 讀取,具體還可能受附件服務限制。
  • 許可證。MIT,可查看源碼後免費使用。

小結

dsh-inline-images 把「助手寫出了本地圖片路徑」這件事接到 Web 對話的 Markdown 渲染上:確認文件存在,改寫成同源迴環 URL,正文直接出圖,並帶燈箱和可調尺寸。它不提供視覺理解,也不負責下載遠程圖片,邊界很清楚。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-inline-images/

GitHub:https://github.com/3403473060/dsh-inline-images

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜