dsh-auto-vision
Bridges images into text for DeepSeek Harness: when the session's selected model cannot see images, a configured vision model describes them and the descriptions enter the durable session history as folded context rows — your message stays untouched.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:soarGuo/dsh-auto-vision说明文档
阅读完整 README ↗Configuration
Zero manual setup for model declarations. By default (autoDeclareInput: true) the plugin scans the llm-pi-ai and llm-deepseek settings sections on startup (and whenever settings/adapters change) and automatically adds image input declarations to every configured model — the step the GUI admission check needs to let images through. Native vision models get the declaration too (they need it to receive images at all). Idempotent; already-declared models are untouched.
The plugin's own section (all fields optional; these are the defaults):
auto-vision:
visionProvider: deepseek-official # recognition route
visionModel: deepseek-v4-flash-vision-exp # recognition model
nativeVision: # models that see images natively (untouched)
[
{ provider: deepseek-official, model: deepseek-v4-flash-vision-exp },
{ provider: deepseek, model: deepseek-v4-flash-vision-exp }
]
autoDeclareInput: true # auto-add image declarations (set false to manage manually)
Set autoDeclareInput: false if you prefer to declare input: [text, image] yourself (then follow the manual steps below). Settings hot-reload — no restart needed for config changes.
Manual declaration (only when autoDeclareInput is false)
llm-pi-ai:
providers:
{
my-gateway:
{
displayName: My Gateway,
models:
[
{ id: my-pro, name: My-Pro, input: [ text, image ] },
{ id: my-vision, name: My-Vision, input: [ text, image ] }
],
baseURL: https://example.com/v1,
apiKeyEnv: MY_API_KEY
}
}
Remember to add the bridged models to nativeVision only if they really see images; otherwise the plugin bridges them (which is the point).