Skip to content

121103qwq/dsh-vision-sidecar

50Last commit Aug 14, 2026

dsh-vision-sidecar DSH plugin

dsh-vision-sidecar is a DSH plugin that intercepts images in a session, sends them to an OpenAI-compatible vision API, and injects the textual description as a durable session message. It defaults to LLM7.io's anonymous vision tier, requiring no account or API key. The plugin works with any DSH text route that doesn't depend on opaque provider replay state.

How to install the dsh-vision-sidecar DSH plugin

dsh plugin --profile web add github:121103qwq/dsh-vision-sidecar#v0.1.4

Copying does not run this command. Review the repository and version before installing the dsh-vision-sidecar DSH plugin.

dsh-vision-sidecar DSH plugin data source

dsh-vision-sidecar DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-vision-sidecar DSH plugin can do

  • Default anonymous vision via LLM7.io without registration or API key
  • Durable and replayable: VLM output is stored as a real DSH session message, not a hidden rewrite
  • Replaceable reasoning target: forwards to any configured targetProvider and targetModel
  • Fail-loud: typed errors for missing credentials, timeouts, rate limits, and provider failures
  • Build-free Git install: ships native ESM JavaScript, no prepare script needed
  • Supports multiple free vision providers: LLM7.io, OVHcloud, Zhipu GLM, OpenRouter, Hugging Face, ModelScope
  • Custom vision provider setup via DSH Desktop's model settings page

Where the dsh-vision-sidecar DSH plugin fits

  • Add vision capabilities to a text-only reasoning model in DSH without replacing it
  • Use a free hosted vision API to describe images in chat sessions
  • Ensure visual descriptions are durable across process restarts and session replays
  • Route images to a custom OpenAI-compatible vision endpoint while keeping the reasoning model unchanged
  • Test and develop with a no-key vision setup before configuring a paid provider

Who the dsh-vision-sidecar DSH plugin is for

  • DSH users who want to add vision to a text-only reasoning model without local GPU or VLM
  • Developers building DSH workflows that need to process images through a remote vision API

dsh-vision-sidecar DSH plugin limitations

  • Requires DSH 0.1.0-rc.6 or newer within the 0.1.x line and Node.js 22.19+ or 24+
  • Default free vision provider (LLM7.io) has rate limits: 500,000 tokens/day, 60 requests/hour, 10 requests/minute, 1 request/second
  • Images are sent to remote services; do not send personal, confidential, or regulated images unless provider terms are acceptable
  • Only OpenAI Chat Completions protocol is supported for the vision endpoint; Responses and Anthropic protocols cannot be used directly
  • No local VLM support; the plugin relies entirely on external vision APIs

dsh-vision-sidecar DSH plugin: from the repository README

Quoted from the 121103qwq/dsh-vision-sidecar README, the upstream source of the dsh-vision-sidecar DSH plugin. Copyright remains with the original authors.

Give text-only models in [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) hosted visual perception without replacing the reasoning model. Images go to a free or custom OpenAI-compatible vision API; the exact description sent to the configured reasoning model is then committed to the DSH session and replayed as ordinary text. The default is LLM7.io's anonymous `default` vision route. No local VLM, GPU, account, or vision API key is required for its documented anonymous allowance. No local VLM, GPU, or multi-gigabyte model download is required. ## Why this plugin - **No-key hosted vision default.** On top of a working DSH text route, the default LLM7.io vision endpoint works without registration or a vision key; an LLM7 token is optional for higher limits. - **Durable and replayable.** VLM output is a real DSH session message, not a hidden request-time rewrite or process-only cache. - **No image overhead for text.** The vision provider is contacted only when an undescribed image exists. - **Replaceable reasoning target.** The sidecar forwards to `targetProvider` and `targetModel`; any DSH text route that does not depend on opaque provider replay state can be sel

Read the full READMERepository license: MIT

dsh-vision-sidecar DSH plugin questions

Do I need an API key to use the default vision?

No. The default vision endpoint from LLM7.io works anonymously without any key. Anonymous access is limited to 500,000 tokens/day, 60 requests/hour, 10 requests/minute, and 1 request/second. For higher limits, you can create a free token at token.llm7.io and set it via the `visionApiKeyEnv` config.

Can I use a local vision model instead of a remote API?

No. The plugin is designed to use remote OpenAI-compatible vision APIs only. It does not support local VLM, GPU, or multi-gigabyte model downloads. If you need a local solution, consider other community plugins like dsh-vision-proxy or modlens, but they require local model setup.

How are images processed and stored?

Images are sent to the configured vision API as a bounded batch. Only after all batches succeed, the exact visual description and attachment SHA-256 IDs are appended to the durable session as an untrusted-evidence notice. The description is stored as a real DSH session message, so it persists across process restarts and replays. Later turns reuse the logged description and do not spend the VLM quota again.

What text models can I use with this plugin?

Any DSH text route that does not depend on opaque provider replay state can be selected as the reasoning target. Configure the `targetProvider` and `targetModel` in the plugin config. The default example uses a profile with a working text model, but the plugin does not require a particular provider or model.

Can I add a custom vision provider?

Yes. You can add a custom OpenAI-compatible vision provider via DSH Desktop's Settings → Models page. Choose 'Add custom provider', enter a Provider ID, HTTPS Base URL, select 'openai-completions', add a vision model ID, and paste your API key. Then configure the plugin's `visionProvider` and `visionModel` to point to that route.