Nanawwa/dsh-vision-proxy ↗★ 0

dsh-vision-proxy

Give a text-only DeepSeek Harness model eyes: a proxy provider that delegates image understanding to any vision-capable model the harness can route, plus vision and vision_config tools. 核心用途是让不支持图片的纯文本模型也能通过代理调用其他视觉模型来理解图像。适合希望扩展 DSH 文本模型多模态能力的用户。

Package
dsh-vision-proxy
Compatibility
Unverified
Cordis peer range
^4.0.1
Version
0.2.0
License
MIT
Last updated
Aug 15, 2026

Other repositories with this package name

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

Configuration

All config lives in the vision-proxy settings namespace (settings.yaml), the same file where your provider routes live:

vision-proxy:
  mainProvider: opencode-go        # preferred route for the main (text) side; empty = scan live providers
  visionProvider: opencode-go      # route for the vision model; empty = use the main side's provider
  visionModel: mimo-v2.5           # the vision model used for every image
  fallbackVisionModels: []         # optional: models tried in order if the primary call fails
  visionMaxTokens: 2048            # output cap per vision call
  descriptionPrompt: "Describe this image in full detail: ..."   # instruction sent with every vision call

Notes:

  • No automatic fallback. fallbackVisionModels is empty by default. Every fallback attempt is a paid model call, so switching models on failure is strictly opt-in. A fixed visionModel fails loudly instead of silently spending.
  • mainProvider disambiguates when the same model id exists on several routes (e.g. deepseek-v4-flash on both opencode-go and deepseek-official). Empty means the first live provider that serves the model wins.
  • The vision side must be a model the harness can route and that accepts image input. The harness validates this at call time and reports a clear error otherwise.

Usage

  • Attached images — switch the session to a -vision entry in the model picker and attach normally. Each image is described before the request goes to the main model. If a description fails, a placeholder text is injected instead of failing the turn.
  • Local images — ask the model to look at a file, e.g. "what does screenshot.png show?" It will call the vision tool. Supported formats: png, jpg, jpeg, webp, gif (subject to the harness attachment limits, ~5 MB by default).