dsh-vision-pro-bridge
Manifest validVision bridge for text-only DeepSeek models: transcribes attached images with deepseek-v4-flash-vision-exp before they reach deepseek-v4-pro, with no third-party dependencies.
dsh-vision-pro-bridge
Give a text-only DeepSeek-V4-Pro brain real image understanding — without switching models, without Ollama, and without a second API key.
DeepSeek Harness (dsh) plugin. English · 简体中文
The problem
deepseek-v4-pro (and deepseek-v4-flash) are text-only models: their API rejects image bytes. In DeepSeek Harness, pasting a screenshot into a Pro session fails with "does not accept image input". Your only official option is to switch the whole conversation to the weaker, Flash-tier deepseek-v4-flash-vision-exp.
What this plugin does
It registers a twin provider route — deepseek-vision-pro (model deepseek-v4-pro-vision) — that advertises image support. When you attach an image, the plugin first asks deepseek-v4-flash-vision-exp to transcribe it into text (using your existing DEEPSEEK_API_KEY), then hands that text — plus a stable local file path — to deepseek-v4-pro. The DeepSeek wire route never sees an image; V4-Pro keeps its coding brain and still "sees" the picture.
paste screenshot → [image block admitted]
→ transcribe via deepseek-v4-flash-vision-exp (text)
→ text + local path → deepseek-v4-pro answers
Why this one
- Zero third-party dependencies. It reuses only the harness's own
@deepseek-ai/dsh-llmand@deepseek-ai/dsh-llm-deepseek. Noopenai, nosharp, noschemastery, no Ollama. - DeepSeek-only, single provider. Images go only to DeepSeek (
deepseek-v4-flash-vision-exp), through the sameDEEPSEEK_API_KEY. No second VLM vendor, no local model, no anonymous endpoints. - Official image pipeline, byte-for-byte. It subclasses the official
DeepSeekAdapter, so image normalization, Files-API upload, and inline-base64 fallback are identical to official behavior — no hand-rolled HTTP. - Minimal & auditable. One file, ~250 lines. Easy to read, verify, and fork.
- Content-addressed persistence. Images are saved under
~/.dsh/vision-pro-bridge/images/and the stable local path is passed to the model, so V4-Pro can reference it. - Pro-focused. One model,
deepseek-v4-pro-vision: keep V4-Pro's coding ability, add vision.
Install
dsh plugin --profile web add dsh-vision-pro-bridge
# restart dsh web
Usage
- In the model picker, choose DeepSeek-V4-Pro (视觉桥).
- Paste or drag a screenshot and ask normally.
Make it the default for new sessions (~/.dsh/settings.yaml):
agent-default-model:
provider: deepseek-vision-pro
model: deepseek-v4-pro-vision
Configuration
Environment variables (all optional):
| Variable | Default | Purpose |
|---|---|---|
DEEPSEEK_API_KEY | credentials service | DeepSeek key (same as the official route) |
DEEPSEEK_BASE_URL | https://api.deepseek.com | Endpoint (same as the official route) |
DSH_VISION_PRO_BRIDGE_PROMPT | built-in English transcription prompt | Override the transcription prompt (e.g. Chinese UI analysis) |
Images are cached content-addressed under ~/.dsh/vision-pro-bridge/images/ (re-attaching the same image reuses the transcription); an activity log is written to ~/.dsh/vision-pro-bridge-activity.jsonl.
How it works
apply(ctx)registers aDeepSeekAdaptersubclass for the provider routedeepseek-vision-pro.listModels/resolveModel/prepareCallall declareinputModalities: ['text', 'image'], so the harness's image gates (paste admission, thumbnails,read_image) open. OverridingprepareCallis required — otherwise the LLM runtime projects images to placeholders before they ever reach the adapter.stream()walks every message (including nestedtool-resultcontent), and for each image block reads its bytes, saves them content-addressed, and callssuper.stream()againstdeepseek-v4-flash-vision-expto produce a text transcription.- The image block is replaced with
[图片(视觉桥分析 by …)]\n<transcription>\n\n本地路径:<path>and the now text-only conversation is streamed todeepseek-v4-pro.
With no image, stream() forwards directly to Pro — zero overhead.
Limitations
- Transcription is lossy: great for layout / OCR / UI review, not for exact pixel coordinates.
- The transcription model is fixed to
deepseek-v4-flash-vision-exp. - The endpoint is resolved from
DEEPSEEK_BASE_URL(not the settings-pagellm-deepseekoverrides). - No fallback chain: if the transcription call fails, the image becomes a placeholder and the turn continues.
Alternatives
For a feature-rich take (fallback VLM chain, local Ollama, settings-page UI, image downscaling, classified errors), see dsh-vision-proxy. This plugin is the minimal, DeepSeek-only, zero-dependency version of the same idea.
License
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 1.0.0 | — | — |
Comments
Loading…
Similar plugins
by JollY-Life
ModLens 风格的 DeepSeek Harness 视觉桥接插件:deepseek-v4-pro 当大脑、deepseek-v4-flash-vision-exp 当眼睛,提供 vision 工具与 (ds vision) 视觉孪生模型,让纯文本模型也能看图、直接贴图。
★ 0
↓ 56/wk
MIT
JavaScript
Aug 21, 2026
dsh plugin --profile web add jolly-dsh-visionAuto-discovery vision bridge for text-only DeepSeek Harness agents: automatically finds an image-capable model from your configured providers and returns picture descriptions as plain text via a visio
★ 0
↓ 101/wk
dsh plugin --profile web add dsh-auto-visionby Sorwcyra
Paste images into DeepSeek Harness with a four-model vision race, OCR, and an automatic text bridge.
★ 4
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add ds-vision-pluginby Flyvhidbwo
DeepSeek Harness 插件:DeepSeek Pro 大脑 + 自动识图。GUI 附加图片默认经官方 deepseek-v4-flash-vision-exp 原生识图,转译成文字后交给 DeepSeek 作答(纯文本的 V4-Pro 也能看图);支持百炼/智谱/OpenRouter 等任意 OpenAI 兼容 VLM,无 key 自动探测本地 Ollama;安装时有一问式确认
★ 17
↓ 454/wk
MIT
JavaScript
Aug 26, 2026
dsh plugin --profile agent add dsh-vision-proxyby jin123-alpha
External vision proxy extension for DeepSeek Harness, enabling text-only models to analyze and understand images via OpenAI-compatible vision APIs.
★ 3
MIT
TypeScript
Aug 19, 2026
dsh plugin --profile web add dsh-ext-vision-proxyby Einskyle
DeepSeek vision bridge for dsh: route image attachments to a vision model (Qwen3-VL via pi-ai/llama.cpp) and continue on a text-only LLM (DeepSeek)
★ 3
↓ 144/wk
MIT
JavaScript
Oct 9, 2026
dsh plugin --profile web add dsh-llm-vision-bridge