DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-auto-sight

Auto Sight

让仅支持文本的模型能够查看图像,方法是自动调用同一提供商的视觉模型。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-auto-sight@0.5.0
README兼容性版本

兼容性与来源证明

Auto Sight 以 dsh-auto-sight 发布,当前版本为 0.5.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/3

版本

0.5.0stable
2026/11/3
0.4.9stable
2026/11/2
0.4.7stable
2026/10/31
查看其余 1 个版本收起版本
0.4.6stable
2026/10/31

相关插件

正在加载相关插件…

最新版
0.5.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
87.8 kB
文件数
12
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/11/3
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Experimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundle实验性语音输入,使用本地 SenseVoice;首次使用时下载其运行时Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —

README

dsh-auto-vision

English | 简体中文

Let a text-only model see images. When the selected model has no image input, or recognition is unusable (for example the call fails or returns nothing), Auto Vision asks another image-capable model on the same provider to read each image, then sends the original request with that description in place of the image.

A DSH plugin. No API keys are stored in or sent by the plugin itself — it uses the credential your provider config already points at.

Why this instead of another vision setup

  • No second API to configure. It reuses the provider you are already talking to — no extra key, base URL or proxy to set up.
  • No model IDs to look up. It reads that provider's model list and finds an image-capable one by itself; naming one in Settings is optional.
  • Fixes the rejected drop. Dragging an image into a text-only model's input box used to be refused. Now the image is read first, and the same model answers.

What it does

  • Hooks llm/stream: if a request carries image blocks and the selected route is text-only, each image is read by a vision model on the same provider and replaced with a text block [Image #n interpreted by <model>] … [/Image #n].
  • Only steps in when all three are true: the request has at least one image block, the main route does not declare image, and a vision target resolves on the same provider. Otherwise it passes through untouched.
  • If the main model can already see images, it passes through by default. Select a vision model and enable Use the vision model even when the main model can see images to have that model read first anyway. The switch has no effect when no vision model is selected.
  • Target order: the model chosen in Settings → other mounted image-capable models on the same provider → name-matched candidates from the official /models list. The next group is tried only when the previous one is unavailable or has failed.
  • If the chosen vision model fails, tries the remaining targets in order; the block is marked after <failed model> failed. A system notice asks the main model to tell the user which model failed and which one was used.
  • If every mounted vision model fails, queries the provider's official /models list, keeps name-matched candidates, and tries them over the direct endpoint. The official list has no modality metadata, so these candidates are not guaranteed to accept images.
  • Sends a model that is not mounted locally, or is known to the adapter as text-only, to the provider's OpenAI-compatible /chat/completions endpoint. This requires baseURL and a usable apiKeyEnv in the provider config.
  • If every vision model fails, inserts [Image #n could not be interpreted by any vision model: …] and still asks the main model to report it; the turn continues, and one failed image does not stop the others in the same message.
  • Advertises image input in the model picker for text routes that have a vision sibling, so you can attach an image to them directly.
  • Session history and the UI keep the real image; only the request going to the text model is rewritten.
  • The first time an image is successfully read by a model that lacks an image declaration, writes input: [text, image] back to the provider's llm-pi-ai config for future direct routing. It never probes models the user has not used, and a failed or cancelled request writes nothing.
  • Per-image result cache (128 entries) and in-flight de-duplication; 60 s timeout by default.

Install

dsh plugin add github:thanderming/dsh-auto-vision

Or install it from the plugin marketplace.

The same code is published to npm as dsh-auto-sight (npm i dsh-auto-sight). The npm build is prebuilt — no install-time build step or allowBuilds prompt — and its download count is visible on the package page.

Settings

Settings → Auto Vision: pick the vision model (grouped per provider), or leave it on Automatic. The selection is stored in volatile config and applies to the next image request. After selecting a vision model, you can enable Use the vision model even when the main model can see images; it has no effect while no model is selected.

Config keyDefaultMeaning
visionProvider / visionModelempty = autoModel to read images with. A selection made for another provider is ignored; the plugin discovers a target on the provider handling the request instead.
preferVisionModelfalseUse the selected vision model even when the main model can see images; only applies when a vision model is selected.
timeoutMs60000Per-image read timeout.

The picker has three groups:

  • Guaranteed: models whose DSH config declares input: [text, image].
  • Configured without image input: models present in the DSH config but not declared as image-capable; shown by name match.
  • Official candidates: the /models endpoint exposes no modality metadata, so these are name-matched guesses and are collapsed by default.

Once a candidate successfully reads a real user image, the plugin writes input: [text, image] back to the provider's llm-pi-ai config, so it moves into the guaranteed group next time. This only happens after a real image request, never as a background probe; refresh the Settings page to see the change.

Privacy

  • Images are sent only to the vision model of the same provider you are already talking to. Nothing goes to a third-party service.
  • Credentials are read at request time from the credential reference (apiKeyEnv) of that provider's config; the key never enters the plugin's config, logs, or the browser UI.
  • Image descriptions are cached in memory for the session only, and are never written to disk.

Limitations

  • Same provider only: a vision model on a different API is not used.
  • The official list exposes only basic fields such as model IDs, not modality metadata; candidates are name-matched and may fail. Direct calls also need baseURL and a usable apiKeyEnv in the provider config.
  • One extra model call per uncached image.
  • Auto-marking modifies the llm-pi-ai model config; if several Settings pages edit config concurrently, a revision conflict is possible. That attempt only logs a warning and does not retry, and it does not affect the answer.
  • Image content is treated as untrusted data in the vision prompt (the model is told not to follow instructions found in the image), but the resulting text still flows into your model's context as evidence.

Development

node --test test/auto-vision.test.mjs   # 19 tests, no network
node test/client-render.mjs             # client Settings-page smoke test

License

MIT