Preface

The philosophy of DeepSeek Harness (hereinafter referred to as DSH) is “everything is a plugin,” but its web chat is purely text-based: pasting a screenshot of an error or dragging in a design draft results in the model not seeing it; you can only describe it in text, or perform OCR in another tool first and copy the result back into the conversation. For agent developers, such operations occur quite frequently, interrupting the workflow at hand each time.

qing9835’s open-source plugin, dsh-eyes, addresses this problem: images pasted, dragged, or imported are intercepted by the plugin, handed to an OpenAI-compatible vision model to be recognized as text, and automatically sent into the conversation.

What is it

dsh-eyes (package name: dsh-vision-bridge) is a DSH web profile plugin with an MIT license. It adds a set of “eyes” before the plain-text chat: images do not enter the input box but are first recognized as text by the vision model you configured, and then the result is automatically sent into the conversation. The main model receives text, allowing it to answer directly based on it or to continue asking questions.

Core Features

The interception mode is enabled by default, with the following workflow:

  1. Images pasted, dragged, or imported are intercepted by the plugin, displaying thumbnails on the interface without entering the input box;
  2. Pressing Enter hands the image to the configured OpenAI-compatible vision model for recognition;
  3. The recognition result is automatically sent into the conversation, following the main model’s normal workflow.

A single recognition process can handle up to 9 images.

Interception can be toggled on and off. When disabled, images revert to default behavior: entering the input box normally and being sent directly to the multimodal model with the message. The toggle takes effect in real-time, and the selection is remembered.

If there are instructions written in the input box, the plugin sends both “my instructions” and the “recognition result” to the main model; the result will not be a dry block of text.

On the main model side, there is a vision_ask tool that can determine whether to ask follow-up questions and refine details round by round. vision_ask also supports the paths parameter to read local image files directly, such as PDF renderings or web page screenshots.

Regarding configuration, the plugin comes with two built-in presets, OpenCode and ModelScope, but you can also add any OpenAI-compatible model. Saving takes effect immediately; “Test Connection” is an independent button, and the Key is stored persistently.

Installation & Enablement

The official installation commands are as follows:

# npx (works even if DSH is not installed locally)
npx @deepseek-ai/dsh plugin --profile web add github:qing9835/dsh-eyes#v0.4.0

# or if DSH is installed locally
dsh plugin --profile web add github:qing9835/dsh-eyes#v0.4.0

After installation, restart DSH first, then force refresh the browser page (Ctrl+Shift+R). For the first use, please fill in the API Key in the “Configuration” popup.

When uninstalling, use the package name, not the repository name:

dsh plugin --profile web remove dsh-vision-bridge

Version compatibility: v0.4.0 and v0.3.0 require DSH ≥ v0.1.2-alpha.1; v0.1.0 corresponds to DSH < v0.1.2 (the textarea input box era).

Typical Use Cases

Scenario 1: Temporarily letting the model look at a screenshot. Keep interception enabled, paste or drag in images (up to 9 at a time), press Enter, and the recognition result automatically enters the conversation; the main model directly answers based on it. The example image in the README shows uploading 6 images simultaneously, completing recognition and sending with a single Enter press.

Scenario 2: Looking at images with a clear purpose. Write your instructions in the input box before pressing Enter; the plugin sends both “my instructions” and the “recognition result” to the main model, allowing it to process the recognized content according to your points of focus.

Scenario 3: Letting the main model proactively look up images. Assign it a task; the main model will call vision_ask when needed, use the paths parameter to read local image files (PDF renderings, web page screenshots, etc.), and determine by itself whether to ask for more details.

Applicable Scenarios & Notes

Suitable for two types of users: those using DSH web where the main model is text-only but frequently need to feed screenshots and design drafts into the conversation; and developers who want agents to be able to look up local renderings and screenshots themselves before continuing tasks.

A few notes:

  1. Data is stored in <DSH process directory>/.vision-images/, including images, conversation history, configuration, and keys;
  2. The plugin runs with the permissions of the current dsh process; please be sure to review the source code and confirm the license before installation—this project is MIT licensed;
  3. The vision model’s API Key is saved persistently by the plugin; whether you feel safe using it depends on your review of the source code.

Conclusion

dsh-eyes does something simple: outsourcing the “looking at images” step to the vision model and then feeding the results back into DSH’s conversation flow. Once installed, screenshots, design drafts, and PDF renderings can all go directly into the conversation, eliminating a manual workflow of “save image—switch window—OCR—copy back.”

  • GitHub Repository: https://github.com/qing9835/dsh-eyes
  • Community Plugin Directory (Independent site, no official affiliation with DeepSeek / High-Flyer): https://www.skillhub.cn/plugins/qing9835/dsh-eyes