Introduction¶
When developing daily with DSH (DeepSeek Harness), a common scenario is having a screenshot of an error or an architecture diagram and wanting to directly paste it into DeepSeek to ask what’s wrong. However, DeepSeek’s text models do not accept images. Existing solutions either involve switching to a tool with vision capabilities to identify the image and copying the text back, or manually performing a description transcription in between, which breaks the chat context.
dsh-vision-adapter solves this problem: install a plugin, the chat interface remains completely unchanged; images are processed by the vision model, and text is processed by DeepSeek reasoning. Drag and drop the image to use.
What is this¶
dsh-vision-adapter is a DSH-exclusive plugin maintained by motongv, categorized as “Model Inference” with an MIT license.
There are two points to clarify first:
- It is not a generic OpenAI client tool; it only serves DSH;
- It requires the DSH Web interface (
dsh web), and the runtime environment requires Node >= 18.
How it works¶
The plugin starts an in-process HTTP bridge inside DSH and registers the selected vision model as the llm-pi-ai provider. The registration is incremental and merged, so it does not overwrite other plugins or existing vision bridges set up by users.
The recognition process is divided into two stages:
Image ──► Vision Model (Kimi/Zhipu GLM/Tongyi Qianwen/OpenAI/Gemini/Doubao/MiniMax/StepFun) ──► Text Description
Text + Description ──► DeepSeek ──► Response
In other words, the image is first described as text by the vision model, then the “text + description” is handed over to DeepSeek for reasoning, and the final response still comes from DeepSeek.
Key Features¶
- Visual Settings Page: Provides a settings interface in DSH’s “Settings → Vision”. Select the vision provider via dropdown, paste the API Key, and click “Save and Apply”;
- 8 Vision Provider Presets: Kimi, Zhipu GLM, Tongyi Qianwen, OpenAI, Google Gemini, Doubao, MiniMax, StepFun. Service addresses and model names are preset;
- Two New Models: After saving, two new models appear in the chat model dropdown: “DeepSeek V4 Pro Vision (X)” and “DeepSeek V4 Flash Vision (X)” (X = Selected Provider). Select either to drag and drop images for recognition;
- Image Description Cache: The vision model is called only once for the same image;
- Rate Limiting Backoff Retry: Automatically backs off and retries when the vision interface encounters 429 / concurrency limits;
- Compatibility Fixes: Normalization of
developer→systemrole,max_completion_tokens→max_tokens, etc.; - Secure Storage of Plaintext Keys: Pasted Keys are automatically written to the DSH credential file. The settings file stores only the reference name and displays a “Configured / Missing” status;
- Output Language: The description language can be selected as Chinese or English;
- Advanced Section: Allows modification of the DeepSeek text backend (Model Name / Service Address / Key Reference), defaulting to
deepseek-v4-pro+DEEPSEEK_API_KEY.
Installation and Activation¶
One-click installation:
dsh plugin --profile web add dsh-vision-adapter
After installation, you need to restart DSH for it to take effect. The reason is that dsh plugin add only modifies configuration, and plugins are mounted when DSH starts. If you don’t see “Settings → Vision” or the new models after restarting, first confirm that you have restarted.
Configuration Steps¶
After restarting, configure in the following order:
- Open DSH’s “Settings → Vision”;
- Select a provider in the “Vision Provider” dropdown; the service address and model name will be filled in automatically;
- Paste the plaintext Key for that provider in the “API Key” field (if a Key has already been configured, leave it empty to use the existing one);
- Select Chinese or English for “Output Language”;
- Click “Save and Apply”.
When saving, the plugin writes the Key to the DSH credential file ~/.dsh/.credentials.yaml. The settings file stores only the reference name (e.g., VISION_API_KEY, ZHIPU_API_KEY, OPENAI_API_KEY, etc.), and the settings page will display a “Configured / Missing” status.
Usage¶
After the steps above, two new models will appear in the model dropdown at the bottom right of the chat input box, corresponding to two DeepSeek text reasoning backends:
DeepSeek V4 Pro Vision (X) → Text uses DeepSeek V4 Pro
DeepSeek V4 Flash Vision (X) → Text uses DeepSeek V4 Flash
Select either one to drag and drop images for recognition in the chat. When switching providers in the settings, the model name updates synchronously—select Zhipu to display Zhipu, or MiniMax to display MiniMax.
To connect a vision provider outside the presets, modify the PROVIDERS in the plugin’s src/config.js by adding a new preset. You need to provide the interface address, model, and credential reference name.
FAQ¶
Returning 401 during recognition? Usually, the API Key is not configured, configured incorrectly, or has expired. First check the “Configured / Missing” status on the settings page. After confirming, go to the corresponding provider’s console to get a new Key.
Returning 429 during recognition? This is rate limiting due to the free quota of the vision provider. The plugin has built-in backoff retry and image caching, which can alleviate but not eliminate the limit. If it still occurs frequently, you need to top up the quota or switch to a provider with a higher quota.
Applicable Scenarios and Notes¶
Suitable for those already using the DSH Web interface who want to drag and drop images to ask DeepSeek without changing the chat entry point; the prerequisite is that you have an API Key from any of the preset providers.
Pay attention to the following points before installing:
- The plugin runs with the current
dshprocess permissions. Before installing, check the plugin source code and license (this project is MIT); - Requires the DSH Web interface (
dsh web) and Node >= 18; - This is a DSH-exclusive plugin; do not use it as a generic client in other environments.
Summary¶
dsh-vision-adapter uses the “Vision Model Image Recognition + DeepSeek Reasoning” combination to natively support drag-and-drop image recognition in DSH’s chat interface, with a fully visual configuration process and secure Key storage via the DSH credential system. If you frequently need to throw screenshots at DeepSeek, it is worth installing.
- Plugin Directory: https://www.skillhub.cn/plugins/motongv/dsh-vision-adapter
- GitHub Repository: https://github.com/motongv/dsh-vision-adapter