ysr666/dsh-vision-router
ysr666/dsh-vision-router为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
给纯文本主模型加可配置识图模型:vision_read_image 工具、输入框识图模型选择器,以及纯文本路由的图片自动转文字。
DeepSeek can't "see" images? OpenCode multimodal workaround: give your text-only main model a configurable vision model.
vision_read_image tool / vision-image-analysis skill for OCR, charts, screenshotsOption 1 (native DSH, recommended):
dsh plugin --profile web add -w github:poiuyjie/dsh-vision-opencode
Option 2 — one-click script (install.sh Ubuntu / install.ps1 Windows):
curl -fsSL https://raw.githubusercontent.com/poiuyjie/dsh-vision-opencode/main/scripts/install.sh | bash
Restart dsh, then pick a vision model in the dropdown.
Uninstall: dsh plugin --profile web remove -w dsh-vision-opencode (or uninstall.sh).
Back up image conversations before uninstalling — old image chats may no longer reach a text-only main model afterwards.
Edit ~/.dsh/settings.yaml (or use Settings → Vision):
vision-opencode:
provider: '' # vision model provider; empty = not chosen
model: '' # vision model id; empty = not chosen
autoConvert: true # auto-convert toggle; set false if problems
Text-only main routes are auto-detected and get image conversion; native multimodal routes keep the stock DSH path.
Each model has a "Reasoning" row in Settings → Vision:
| Option | Meaning |
|---|---|
| Default | Follow the provider's default level — think normally |
| Off | No thinking — faster and cheaper. Only when the provider really declares off (e.g. hy3 off:"none") |
| Force off | Best-effort at disabling thinking (e.g. reasoning_effort:"none"), not guaranteed; models without a declared off (like MiMo) get this |
Very few models have a real "Off" entry; the rest show "Default / Force off" with a "not guaranteed" note. Turning thinking off usually cuts first-token latency and cost (MiMo is verified to stop thinking with reasoning_effort:"none").
⚠️ Providers declare "turning off thinking" very inconsistently (
off:"none"/off:null/ no field). The plugin can only tell "Off" from "Force off" per each catalog and best-effort a disabling param — no guarantee every provider can actually disable thinking.
vision-opencode.autoConvert: false and restartgit tag v0.4.0 && git push origin v0.4.0) so every remote update carries a traceable version marker.MIT