Introduction¶
In DeepSeek Harness (DSH), if the main conversation is still handled by a text-only LLM, local images often cannot participate in reasoning directly: screenshots, order pages, logos, code diagrams, and document images all require separate entry points for processing.
The approach of tdf1995/dsh-plugin-vision is: instead of requiring the text model itself to read images, it uses the free Gemini/GLM vision APIs to complete image description, OCR, and visual Q&A, then returns the results back to the DSH session.
What is this¶
One-sentence positioning: It is a vision capability plugin for DSH, supplementing local image understanding capabilities for text-only LLMs.
The repository is maintained by tdf1995 with an MIT license.
Core Features¶
Image Analysis Tool¶
see_image is used to analyze local images, supporting png / jpg / jpeg / webp / gif, with a single image limit of 20MB.
When calling, you can customize the prompt, for example, asking about the product, price, color scheme, or requesting OCR.
Dual Providers and Routing¶
The plugin supports two types of vision providers: Gemini and GLM.
The auto mode automatically selects the provider with an available key, and supports sticky routing, failover, and 429 / rate limit backoff retries.
Large Image Compression¶
Images exceeding 4MB are automatically compressed to a longest side of 1920px and JPEG quality 85 before uploading.
This compression relies on pwsh + System.Drawing and only works on Windows; other platforms automatically fall back to the original image.
Keys and Status¶
vision_set_key is used to save the provider’s API Key to the DSH credential database within the session, taking effect immediately.
vision_status is used to check the configuration status of Keys for each provider without echoing the Key itself.
Web UI Image Input¶
The browser side supports Ctrl+V paste, drag-and-drop, or clicking the image button to add images, and displays attachment cards.
Installation and Usage¶
Prerequisites:
Node.js >= 20
DeepSeek Harness (DSH) is deployed
At least one Gemini or Zhipu GLM vision API Key
Installation command:
npm i -D dsh-plugin-vision
API Keys can be placed in environment variables, ~/.dsh/.credentials.yaml, or written to the DSH credential database via vision_set_key. The repository itself does not contain API Keys.
The plugin runs with the permissions of the current dsh process. You should check the source code, dependencies, and license before installing.
Typical Usage¶
Below are documentation examples that can be used directly as conversation input:
帮我看看这张图 D:\work\screenshot.png
这张订单截图里商品是什么?多少钱?
用 GLM 分析 code/my/logo.png,描述一下配色
用 gemini-3.6-flash 看 baojia/data/purchased_items/xxx.jpg,做 OCR
The first two examples provide local image paths or ask questions around a screenshot; the third example explicitly specifies the GLM provider; the fourth example explicitly specifies a model name and requests OCR.
Applicable Scenarios and Notes¶
Suitable for developers using text-only LLMs in DSH who frequently need to process local images, such as screenshot interpretation, order information extraction, logo color scheme analysis, and document OCR.
Pay attention to the following boundaries:
- Browser input capabilities like paste and drag-and-drop only apply to the Web UI (
dsh web); these features will be absent when using TUI or other interfaces without a web UI. - The
/vision/save-imageroute only listens on the loopback address; even so, it is still recommended to use it only on the local machine. - Accessing Gemini in China requires a proxy; Zhipu GLM can connect directly.
- Large image compression only works on Windows, other platforms will fall back to the original image; you still need to meet the
20MBread limit when using it. - This is a community plugin and should not be understood as an official capability in the DeepSeek or Hexagon official app stores.
Conclusion¶
If you are already using text-only LLMs in DSH but frequently need to process local images, dsh-plugin-vision provides a direct bridging solution: use external vision APIs to read images and then send the results back to the session.
Project Address:
- GitHub: https://github.com/tdf1995/dsh-plugin-vision