
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-vision-link
Advanced tools
Lightweight, route-preserving vision link for DSH: a configured vision model sees while the selected text model stays in control.
A lightweight, zero-overhead, route-preserving vision sidecar plugin for DeepSeek Harness (DSH)
English • 简体中文
Paste images directly while keeping DeepSeek-V4-Flash selected. The paired multimodal model silently distills visual facts in the background, and your original model reasons and answers directly from the structured evidence:
Run inside your DSH workspace directory:
npx -y @deepseek-ai/dsh plugin --profile web add dsh-vision-link
[!IMPORTANT] Do not stack
dsh-vision-linkwith other paste-intercept plugins such asmodlens,image-bridge, orvision-toolkiton the same DSH Web page. They may compete for the same paste/drop hook and make image intake behavior ambiguous.
Start or restart DSH Web:
npx -y @deepseek-ai/dsh web
Ensure your multimodal model (e.g. Doubao, Qwen-Max, or Gemini) declares input: [text, image] in DSH settings.yaml:
llm-pi-ai:
providers:
my-provider:
models:
- id: deepseek-v4-flash
name: DeepSeek V4 Flash
# Text-only models do not declare image
- id: doubao-seed-2.1-turbo
name: Doubao Seed 2.1 Turbo
input: [text, image] # 👈 Explicitly declare image input
Navigate to Settings → Plugins → Vision Mapping in DSH:
DeepSeek-V4-Flash), paired Vision Model (e.g. Doubao / Qwen-Max), and Focus Preset;vision-link as a writable Settings namespace;settings.yaml (in normal npm-installed or restricted environments, the panel automatically acts as a YAML generator):vision-link:
mappings:
ark-code-plan/deepseek-v4-flash:
provider: ark-code-plan
model: doubao-seed-2.1-turbo
displayName: 火山code plan · doubao-seed-2.1-turbo
focusPreset: auto # 👈 Optional: auto/ui/ocr/code/chart/custom
[!TIP] Same-provider vision models are automatically prioritized. For full syntax examples, see
examples/settings.yaml.
Keep your preferred text model (e.g. DeepSeek-V4-Flash) selected, and paste (Ctrl+V) or drop an image directly into the composer to begin asking multimodal questions!
In day-to-day software development, developers frequently encounter workflows requiring screenshots:
Manually switching models compromises coding and reasoning depth. dsh-vision-link decouples "vision extraction" and "deep reasoning" in memory using a Route-Preserving Sidecar pipeline:
sequenceDiagram
autonumber
actor User as 👤 Developer
participant Client as 🖥️ DSH Web UI
participant Plugin as ⚡ vision-link Sidecar
participant VisionLLM as 👁️ Vision Model (Qwen-Max / Doubao / Gemini)
participant TextLLM as 🧠 Text Model (DeepSeek-V4-Flash)
User->>Client: Paste Screenshot (Ctrl+V) + Enter Question
Note over Client: Composer retains native thumbnail, model route stays unchanged
Client->>Plugin: Request initiated (Original route preserved)
Plugin->>VisionLLM: Stream extraction of structured visual facts & OCR
VisionLLM-->>Plugin: Returns clean, compact Markdown evidence
Plugin->>Plugin: In-memory swap: [ImageBlock] to [Visual Evidence]
Plugin->>TextLLM: Forward text prompt (including structured evidence)
TextLLM-->>User: Delivers evidence-grounded code analysis & fixes
| Consideration | DSH Manual Switch | Wrapper Provider (modlens) | External CLI / Script | 🌟 dsh-vision-link Sidecar |
|---|---|---|---|---|
| Model Route State | Manual switch, split history | Rewrites dropdown to wrapper | Relies on external tools | 100% preserves original text model |
| Composer UI | Native Attachment thumbnail | Backfills raw local file path | No direct UI integration | Native Attachment thumbnail (no local paths) |
| Data Transport | Direct provider call | Writes temporary disk files | Disk I/O or external proxy | Pure in-memory, zero temporary files |
| Model & Credential Store | DSH native settings | Registers duplicate wrapper | Maintains separate config | 100% reuses existing DSH Settings |
| Host Intrusiveness | Native built-in | Injects custom wrapper logic | Depends on external runtime | Zero host source modifications, npm module |
| Package Footprint | - | Relatively heavy | Python / binary dependencies | ~24 KB, zero heavy runtime dependencies |
Tailored for real engineering workflows, dsh-vision-link provides 6 built-in extraction presets:
┌──────────────────┬────────────────────────────────────────────────────────┐
│ Preset │ Extraction Focus & Strategy │
├──────────────────┼────────────────────────────────────────────────────────┤
│ 🤖 auto (Default)│ Dynamically extracts visual facts relevant to question │
│ 📝 ocr │ Accurate OCR transcription, preserving code structure │
│ 🖥️ ui │ Focuses on UI states, error dialogs, and button highlights│
│ 📊 chart │ Extracts tables, axis units, legends, and data trends │
│ 💻 code │ Transcribes terminal logs, filenames, line numbers & stack│
│ 🎨 custom │ Custom prompt instruction (e.g. database schema focus) │
└──────────────────┴────────────────────────────────────────────────────────┘
authority: loopback and validates Host/Origin, exposing no API keys, endpoints, or credentials;After this repair pass and real-browser validation, dsh-vision-link has been confirmed to provide the following stable behavior:
vision-link configuration, so mappings can be saved directly from the plugin page.settings.yaml.The following are good candidates for later iterations, but they no longer block this repair-pass closeout:
Plugin loading-path forensics
vision-link../client -> client.js through /plugins/<id>/client.js, so the remaining uncertainty now looks like a Host / Client loading-surface difference rather than a failure of this repair pass.Multi-image UX improvements
Less fragile client integration
Prompting & internationalization
Stronger live forensic baseline
docs/ARCHITECTURE.mddocs/TROUBLESHOOTING.mdCONTRIBUTING.mdCHANGELOG.mdnpx -y @deepseek-ai/dsh plugin --profile web remove dsh-vision-link
Uninstallation removes runtime components only and does not alter your
settings.yaml.
We express our gratitude to @liustack/modlens for early explorations in adapting vision for text-only DSH models.
dsh-vision-link represents a comprehensive architectural rewrite for modern DSH:
This project is licensed under the MIT License.
FAQs
Lightweight, route-preserving vision link for DSH: a configured vision model sees while the selected text model stays in control.
The npm package dsh-vision-link receives a total of 20 weekly downloads. As such, dsh-vision-link popularity was classified as not popular.
We found that dsh-vision-link demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.