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-image route 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 20MB read 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