Introduction¶
When using DeepSeek Harness (DSH), there is an unavoidable limitation: official DeepSeek models are pure text models and cannot process images by themselves. When screenshots, charts, or interface photos appear in a message, either the content must be manually transcribed into text, or the entire conversation must be switched to another multimodal model, causing the context to be severed.
DeepSeek VisionPlus takes a different path: text requests continue to be processed by the official DeepSeek API, while images appearing in messages are automatically routed to a free vision model pool, with the understanding results returned to the same conversation. The philosophy of DSH is that everything is a plugin, and this capability is implemented in the form of a plugin. Below, we introduce its features, installation, and daily usage.
Overview¶
DeepSeek VisionPlus (npm package name dsh-visionplus, version 1.0.0) is a visual plugin for DeepSeek Harness, maintained by qq247505, under the MIT license. In one sentence: text goes through the official DeepSeek API, and images are automatically routed to a free vision model pool.
It is a zero-patch plugin: it does not modify Harness source code. Whether running from source, desktop, or npm installation, it is fully functional immediately after installation.
Core Features¶
Automatic Vision Routing¶
When images appear in a message—whether selected, pasted, or autonomously called by the model via read_image—they are automatically handed over to the vision pool for processing. Requests without images continue through DeepSeek, and the reasoning level (Off/High/Max) remains unchanged.
Settings Card¶
Settings → Bridge Vision is a standalone section. Here, you can add vision models, configure keys, and edit the model directory (Model ID, Name, Context Window, Max Output, supporting K/M units), with changes taking effect in real-time upon saving.
Input Box Image Button¶
After selecting a visual variant, an image button appears in the input box, supporting image selection, multi-selection, and drag-and-drop to send.
One-Click Test¶
Both DeepSeek and each vision model have a test button. The process involves validating parameters (key, address, model ID, official limits) first, then initiating a real request following the official integration method. The result is shown as a toast notification and disappears after 3 seconds.
Free Quota Protection¶
Free vision models have limited frequency, so the plugin implements three layers of protection:
- Sequential rotation of the vision pool + rate limiting (minimum interval, per-minute cap, failure cooldown);
- Automatically switching to the next model if a single model fails;
- Throwing errors back truthfully when all fail, allowing DeepSeek to decide how to handle the current round.
Status Bar, Cache, and Visual Memory¶
The conversation will display “Calling xx to process image…”, “Success”, or the reason for failure.
The other two features are related to long sessions:
- Content Hash Cache: Automatically reuses the last result for the same image + same question + same model, avoiding repeated calls to the vision interface, with an LRU limit of 64;
- Visual Memory: Visual results are stored as marked conversation lines, automatically replenishing the last 4 entries after session compaction, ensuring visual context is not lost in long-running tasks.
Autonomous Image Viewing Guidance¶
Conversations with a visual variant selected automatically receive image viewing guidance: the model actively calls read_image, reading 1-2 images at a time, with individual retries on failure. Switching back to the native DeepSeek model automatically removes this, without affecting other sessions.
Installation and Enablement¶
Requirements: Official DeepSeek Harness (desktop or CLI) installed, pnpm, Node >= 20.
dsh plugin --profile web add github:qq247505/DeepSeek-VisionPlus
After installation, configure using the steps below:
- Restart Harness and open the Settings → Bridge Vision card;
- Fill in
DEEPSEEK_API_KEYin the DeepSeek block (API address defaults to officialhttps://api.deepseek.com), and click “Test” to verify; - Click “Plus Zhipu (GLM)” or “Plus Qwen (Qwen)” to add a vision model, fill in the corresponding keys (
GLM_API_KEY/SILICONFLOW_API_KEY), and click “Test” for each to verify; - After saving, select DeepSeek-V4-Pro Vision (or Flash Vision) in the model selector on the chat page;
- Click the image button in the input box to send an image, or let the model autonomously call
read_image; the vision task is automatically routed.
Three vision models are pre-configured with the following specifications:
| Vision Model | Model | Context | Max Output |
|---|---|---|---|
| Zhipu GLM | glm-4.1v-thinking-flash | 64K | 16K |
| Zhipu GLM | glm-4.6v-flash | 128K | 32K |
| SiliconFlow | Qwen/Qwen3-VL-8B-Instruct | 64K | 16K |
Implementation Details¶
Several design points worth noting:
- Settings are stored in the plugin’s own namespace, read/written via the plugin’s own mount point interface
/api/visionPlus.settings, without relying onllm-pi-ai; - Internal vision routes do not appear in the model selector; users can only select the exposed vision variants;
- Session-level model switching takes over
agentDefaultModel.saveSelection; the switch only affects the current session and does not pollute the global default; - All of the above are runtime capabilities of the plugin, with no patches applied to Harness source code.
FAQ¶
- Test reports 401: Check if the key is filled in correctly;
- Test reports 404: Check API address and Model ID;
- Vision request 429: Free models have limited frequency; the plugin includes rate limiting, please retry later;
- Want to add more vision models: Click “Plus Custom Model” and fill in according to the other party’s official documentation.
Use Cases and Notes¶
Suitable scenarios: Daily use relies on official DeepSeek models, occasionally needing to view screenshots, charts, or interfaces, without wanting to switch the entire conversation model for this; long sessions hoping visual context is not lost after compression; wanting to keep the DSH environment clean and unwilling to modify source code.
Note two points:
- Free vision models have limited frequency; heavy image viewing needs should accept the existence of rotation and rate limiting; when encountering 429, retry later;
- The plugin runs with the permissions of the current dsh process; it is recommended to check the repository source code and license before installing any third-party plugins (this project is MIT).
Uninstallation¶
dsh plugin --profile web remove dsh-visionplus
Zero-patch plugin, clean uninstall, no need to revert any host changes.
Summary¶
DeepSeek VisionPlus solves a very specific problem: enabling the text-only DeepSeek to see images within DSH, without changing the original text pipeline and reasoning settings. Install a plugin, fill in a few keys, and you’re ready to use it; uninstalling also leaves no trace. If you are using DSH, give it a try.
- GitHub Repository: https://github.com/qq247505/DeepSeek-VisionPlus
- Community Directory Entry: https://www.skillhub.cn/plugins/qq247505/DeepSeek-VisionPlus
The community directory is an independent site with no official affiliation with DeepSeek or Hanhua; plugin information is based on the GitHub repository.