Preface¶
DeepSeek Harness (DSH) makes models, tools, and routing pluggable components. When the main model selected is a pure text model like deepseek-official, images dragged into the Composer often cannot be directly understood. Common workarounds involve manual OCR or switching to another multimodal-supported client, which also requires changing the task context.
The following introduces the community plugin oil-oil/dsh-vision. It provides an independent visual recognition pipeline for text models without replacing the Harness main model. If the main model itself supports images, the original image is passed through directly without additional preprocessing.
What This Is¶
dsh-vision is maintained by oil-oil, categorized as model inference, MIT licensed, and currently at version 0.1.2. Repository: github.com/oil-oil/dsh-vision, SkillHub directory page: skillhub.cn/plugins/oil-oil/dsh-vision.
In one sentence: Near-native image understanding for DeepSeek Harness—enabling Harness to handle image attachments under a text main model, with an experience as close as possible to native multimodal support.
Core Features¶
Routing Logic¶
The plugin routes based on the main model’s capabilities without replacing the selected main model in Harness:
| Main Model | Image Path | Final Answer |
|---|---|---|
| Supports images | Original image passed through directly, no preprocessing or OCR | Current model |
deepseek-official or other pure text models |
Configured visual model observes the original image, outputs as untrusted attachment context injected | DeepSeek |
| Cloud vision unavailable | Fallback to macOS Vision or Tesseract | DeepSeek |
Multiple images are analyzed together, facilitating comparison and synthesis of evidence; the user’s original task text is forwarded without using a fixed report template.
Visual Backend Configuration¶
After installation, a Vision Recognition card appears under Settings → Plugins → Plugin configuration. Available options include ZenMux, Alibaba Cloud Model Studio, TokenDance, and OpenRouter. You can fill in the API Key and modify the model ID, API endpoint, and maximum image count.
API Keys are stored via Harness’s official credential service; the browser side is write-only: the plugin can report whether a key exists but will not read the key back to the page, conversation, settings documents, or session logs.
Selecting Automatic skips the plugin-managed cloud credentials and sequentially attempts multimodal models already configured in Harness, see-compatible private configurations, and local OCR. Custom models in Harness must declare the image input modality; otherwise, they are still treated as text models.
see-skill Compatibility and Local Fallback¶
When Harness has no available vision model, the plugin reads ~/.config/see/config.env, supporting ZenMux, Alibaba Cloud Model Studio, OpenRouter, and TokenDance; environment variables can override private configuration files:
export SEE_PROVIDER=zenmux
export ZENMUX_API_KEY=your-key
If there are no cloud keys or all cloud routes fail:
- macOS: Built-in Vision OCR, no additional dependencies
- Linux / Windows: Tesseract (requires installing the corresponding language pack)
The local fallback primarily relies on OCR and does not equate to full multimodal understanding.
Security Boundaries¶
- Original images are only sent to the user-configured vision service.
- Vision outputs are marked as untrusted observation data; instructions in images do not receive system privileges.
- Generated visual context only affects the current model request and does not rewrite message history.
- API Keys are resolved via Harness credentials or see private configuration and are not written to the plugin repository.
Installation and Enabling¶
DeepSeek Harness is still in Developer Preview. This plugin supports versions 0.1.0-rc.6 and 0.1.0-rc.7.
Install using Harness’s built-in plugin manager:
npx @deepseek-ai/dsh plugin --profile web add github:oil-oil/dsh-vision
After restarting Harness, simply paste or drag images into the Composer as usual. The plugin will replace the official deepseek-official adapter while retaining its model directory, settings, and credentials.
Typical Usage¶
UI Configuration (Recommended)¶
- Execute the above installation command and restart Harness.
- Open Settings → Plugins → Plugin configuration → Vision Recognition.
- Select the vision backend and fill in the API Key (or choose Automatic to use Harness’s existing routes).
- Return to the Composer, drag in images, and input a task, such as “Compare the differences in the tables in these two screenshots.”
Multiple attachments are sent to the vision pipeline together, while the main model remains the selected DeepSeek text model.
Advanced File Configuration¶
For most scenarios, the UI suffices. Equivalent non-sensitive fields can be written in the llm-deepseek section of $DSH_HOME/settings.yaml:
llm-deepseek:
visionBackend: zenmux
visionBackendModel: qwen/qwen3.7-plus
visionBackendBaseURL: https://zenmux.ai/api/v1
maxImages: 8
Do not write the API Key into this file; save it in the Vision Recognition card or set the corresponding environment variable. No restart is required after modification.
Use Cases and Considerations¶
Who is it for?
- Users with a fixed main model like
deepseek-officialor other pure text DeepSeek models, but whose conversations frequently include screenshots, charts, or photos. - Users who have already configured vision backends like ZenMux or Model Studio in the Harness or see ecosystem and want to reuse the same API key.
- Users who need to analyze multiple images jointly but do not want to switch clients or manually write OCR workflows.
Please note before use:
- The plugin runs with the current DSH process permissions; please read the source code and MIT license before installation.
- SkillHub is a community directory and has no official affiliation with DeepSeek or High-Flyer.
- Local OCR fallback capabilities are limited; complex visual reasoning still relies on cloud multimodal models.
- Development environment requires Node
>=22.19(seepackage.json).
Conclusion¶
dsh-vision integrates three paths—“text main model + independent visual bridging + native multimodal passthrough”—into a single Harness plugin: it passes through directly when appropriate, uses untrusted observation context for bridging when needed, and provides local OCR as a fallback when the cloud is unavailable.
- Directory page: https://www.skillhub.cn/plugins/oil-oil/dsh-vision
- GitHub: https://github.com/oil-oil/dsh-vision