DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-auto-sight

Auto Sight

Let a text-only model see images by automatically calling a vision model from the same provider.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-auto-sight@0.5.0
READMECompatibilityVersions

Compatibility and provenance

Auto Sight is published as dsh-auto-sight and currently resolves to version 0.5.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
11/3/2026

Versions

0.5.0stable
11/3/2026
0.4.9stable
11/2/2026
0.4.7stable
10/31/2026
Show 1 more versionCollapse versions
0.4.6stable
10/31/2026

Related plugins

Loading related plugins…

Latest
0.5.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
87.8 kB
Files
12
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
11/3/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in vision-media.

Experimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundleExperimental voice input with local SenseVoice; downloads its runtime on first useModlens@liustack/modlensPlug-in vision for text-only LLMs, powered by the free Antigravity CLIAb Ocrdsh-ab-ocr--- description: "The out-of-tree ocr tool: recognizes a scanned PDF or image page by page, merges the pages in order only after the last one, and saves one Markdown document with the heading levels the model decided." kind: "package-reference" ---Tool Describe Image@linxin666/dsh-tool-describe-imageModel-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable —

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