Introduction

When using DeepSeek-V3 or DeepSeek-R1 in DeepSeek Harness (DSH), if conversations frequently involve screenshots, charts, and attachment images, pure text models may not stably complete the task of “seeing and answering.” dsh-ext-vision-proxy does something relatively straightforward: it integrates external OpenAI-compatible vision APIs into DSH, allowing text models to obtain image understanding results via tool calls.

Below is an introduction to its positioning, core capabilities, installation and enablement methods, and typical usage.

What is it

dsh-ext-vision-proxy is an external vision proxy plugin for DeepSeek Harness, maintained by jin123-alpha, and licensed under MIT.

One-sentence positioning:

External vision proxy plugin for DeepSeek Harness,
enabling text-only models (DeepSeek-V3 / R1) to analyze and understand images
via OpenAI-compatible vision APIs.

It primarily addresses the issue of enabling text-only models like DeepSeek-V3 / DeepSeek-R1 to analyze images, screenshots, charts, and attachments by leveraging external vision models within DSH sessions.

Additional preparation required:

OpenAI-compatible Vision API Base URL
API Key

Core Capabilities

1. Expose a visual description tool to text models

The plugin enables the model to call tools to view and answer questions related to images. The key tool name is:

vision_describe

It is suitable for analyzing visual content such as images, screenshots, charts, and attachments.

2. Add a switch and model selection to the chat input area

The plugin integrates into the left side of the chat input area:

conversation.input.left

It adds a pill-shaped toggle switch and a model dropdown selector, allowing for quick switching of the vision proxy status and selection of a vision model during the session.

3. Provide a configuration panel in the Settings page

The plugin provides Settings page configuration options, supporting:

custom Base URLs
API Keys
vision model filtering
one-click connectivity testing

This means you do not need to manually modify files every time; you can configure and test whether the external vision API is available directly on the page.

4. Define a 4-state session matrix

The plugin distinguishes between multimodal models and text-only models and, combined with the switch status, creates four session states:

Multimodal LLM + switch ON
Multimodal LLM + switch OFF
Text-only LLM + switch ON
Text-only LLM + switch OFF

One of these states is explicitly defined as:

Text-only LLM + switch OFF

In this state, the behavior is consistent with that of an installation without this plugin.

5. Parse multiple attachment formats

The plugin supports parsing the following image resource formats:

sha256:...
local file paths
HTTP/HTTPS URLs

It uses binary magic bytes to detect MIME types.

Installation and Enablement

Verified materials do not provide a standard dsh plugin add command, so this is not understood as a single plugin installation command. Commands appearing in the materials include:

npm install
npm run build
npm pack
dsh web

First, install dependencies:

npm install

If local building and packaging are needed:

npm run build
npm pack

Then, start DSH Web:

dsh web

Regarding plugin dependencies, the peer dependencies listed in the materials are:

@deepseek-ai/cordis
@deepseek-ai/dsh-tools
react ^19.0.0

Typical Usage

The following flow comes from verified usage examples and can be executed in sequence.

1. Start DSH Web

dsh web

2. Open the Vision Proxy Settings Page

Access the local address:

http://127.0.0.1:3080

Navigate to:

Settings -> Vision Proxy

3. Fill in OpenAI-compatible Vision API configuration

Fill in the Base URL and API Key. The Base URL can be:

https://api.openai.com/v1

It can also be a local endpoint.

4. Fetch Model List

Click:

Fetch Models

Then select a default vision model, for example:

gpt-4o
gemini-2.5-flash
qwen-vl-max

5. Test Connectivity

Click:

Test Connection

After confirming the external API is available, save the configuration.

6. Use in a Session

In a DeepSeek-V3 or DeepSeek-R1 session, enable:

Vision Proxy

Then upload or paste an image and ask a question.

At this point, the model will call:

vision_describe

and then continue answering based on the returned results.

Applicability and Notes

Who is it for

If your DSH sessions frequently involve images, screenshots, charts, and attachments, and you wish for text-only models to also participate in analysis and answering, this plugin is suitable.

It is particularly suitable for this workflow:

User uploads image
-> Model determines that viewing is needed
-> Calls vision_describe
-> External vision API returns image understanding results
-> Text model continues to organize the answer

Important Notes Before Use

First, it depends on an external OpenAI-compatible Vision API. Therefore, you need to configure:

Base URL
API Key

Second, the API Key will be included in your local DSH configuration and runtime environment. It is recommended to configure it only in a trusted environment and to check permissions regularly.

Third, the plugin runs within the permissions of the current dsh process. Before installation, it is recommended to review the source code, dependencies, and license.

Verified license information:

MIT
MIT © 2026 Fan Yuejin

Fourth, do not interpret this as an official plugin from the DSH official app store. The plugin directory page here is an independent community site and has no official affiliation with DeepSeek / Hypersphere.

Conclusion

The value of dsh-ext-vision-proxy lies not in replacing models, but in integrating external vision capabilities into DSH sessions, allowing text-only models like DeepSeek-V3 / DeepSeek-R1 to process images via the vision_describe tool.

If you need to stably process screenshots, charts, and attachment images in DSH, you can configure the Base URL and API Key following the steps above, and test connectivity before entering a formal session.

Reference Links:

https://www.skillhub.cn/plugins/jin123-alpha/dsh-ext-vision-proxy
https://github.com/jin123-alpha/dsh-ext-vision-proxy