niuniuaba/dsh-subagent-vision
dsh-subagent-vision
dsh-subagent-vision is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add dsh-subagent-visionRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-subagent-vision)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from niuniuaba/dsh-subagent-vision, cleaned of badges and images.
dsh-subagent-vision
English | 中文
A DeepSeek Harness bundle plugin that lets a text-only main agent (DeepSeek) read images in the same session — no model switching, no second session, no copy-paste. When a task needs vision, the main agent delegates to a fresh subagent routed to a vision-capable model you pick in the settings (configured under Settings > Models, chosen under Settings > 视觉处理模型; the factory default is qwen3.8-max — see Configure), and the child's text result is merged back. The image itself never reaches the main model: the parent passes a file path or URL, and only the child's text reading returns — so this is not "the current model natively accepts images"; the current session's model stays text-only, and the vision happens in the delegated child. Pasting or dropping an image just works: intake stays native (thumbnail rail, remove/undo); when you hit send on a text-only session, the browser half uploads each draft image to a private temp file and appends the paths to your prompt, so the request never trips image admission and the text-only agent can delegate the paths to the vision subagent.
Why
DeepSeek chat models cannot take image input, and the harness refuses to switch a session that contains images to a text-only model (and a text-only adapter would reject the image at request time anyway). The harness does have a first-class subagent seam (subagent / subagent_fork tools) whose children can be routed to any registered provider/model — this bundle simply exposes a second delegation tool pinned to the vision route you pick in the settings, plus a send-time image-to-path conversion so images reach that tool as file paths without tripping admission.
How it works
The bundle's cordis.patch.yml inserts two rows into the profile composition:
…


