Preface¶
If you already have a working DeepSeek Harness (DSH) text model route, the next common question is: pure text models cannot directly process images. The common approach is to deploy a vision-language model (VLM) locally, or replace the existing inference model; this introduces GPU, model download, and inference routing changes.
dsh-vision-sidecar offers another path: send images to an OpenAI-compatible vision endpoint, and hand the resulting description back to the configured inference model as plain text.
What This Is¶
dsh-vision-sidecar is a DSH plugin, maintained by 121103qwq, MIT licensed, currently at package version 0.1.4.
Its primary purpose is: to provide managed visual perception for DSH’s pure text models while preserving the configured inference model. It uses the LLM7.io anonymous default vision route by default, requiring no local VLM, GPU, account, or vision API key.
The vision route must support OpenAI Chat Completions; Responses and Anthropic protocols cannot directly serve as the plugin’s vision endpoint.
Core Features¶
Here are the verified capabilities:
- Provides managed visual perception for DeepSeek Harness’s pure text models without replacing the inference model.
- Uses the LLM7.io anonymous
defaultvision route by default, requiring no local VLM, GPU, account, or vision API key. - Submits vision model output as persistent DSH session messages and reuses them as plain text in subsequent turns.
- Contacts the vision provider only when there are undescribed images.
- Allows configuring the inference target as
targetProviderandtargetModel. - Maintains typed errors for missing credentials, timeouts, rate limits, and provider failures, without silently forwarding images to the pure text model.
- Supports adding custom OpenAI-compatible vision providers and models via the DSH Models page.
- Explicitly marks text detected in images as untrusted data before feeding it to the inference model.
- The repository provides native ESM JavaScript; Git installation does not require pnpm to run prepare scripts.
Installation and Enablement¶
First, confirm the environment requirements:
- DSH
0.1.0-rc.6or higher, and within the0.1.xline. - Node.js
22.19+or24+.
Assume you already have a DSH Web profile that can call text models. Install and start the plugin:
dsh plugin --profile web add github:121103qwq/dsh-vision-sidecar#v0.1.4
dsh --profile web
No vision key export is required in POSIX shells. The plugin will add and select deepseek-vision/deepseek-with-vision.
Typical Usage¶
Using the Default Anonymous Vision¶
The installation commands above enable the default LLM7.io vision route.
The documented anonymous limits are:
500,000 tokens/day
60 requests/hour
10 requests/minute
1 request/second
These limits and model availability may change. If you already have an LLM7 token, you can enable authenticated access via environment variables:
- id: vision-sidecar
config:
visionBaseURL: https://api.llm7.io/v1
visionModel: default
visionApiKeyEnv: LLM7_API_KEY
The package intentionally does not include shared or embedded API keys; optional authentication keys belong to the user and are not stored within this package.
Using OVHcloud as an Alternative Vision Endpoint¶
If you prefer to use OVHcloud’s vision endpoint, you can change it to:
- id: vision-sidecar
config:
visionBaseURL: https://oai.endpoints.kepler.ai.cloud.ovh.net/v1
visionModel: Qwen2.5-VL-72B-Instruct
visionApiKeyEnv: OVH_AI_ENDPOINTS_ACCESS_TOKEN
Adding a Custom OpenAI-Compatible Provider¶
DSH Desktop already includes the Model Settings page; the plugin reuses this entry point instead of introducing a separate set of credential forms.
Open DSH Settings → Models, and select Add custom provider under llm-pi-ai:
-
Fill in the Provider ID.
-
Fill in the Base URL.
-
Select
openai-completionsand add at least one vision model ID. -
Enter your own API key, then apply.
After saving, point to that provider in the vision-sidecar configuration:
- id: vision-sidecar
config:
visionProvider: my-vision
visionModel: default
visionModel: default selects the first model in that route; you can also fill in a specific model ID directly.
Using OpenRouter¶
If you switch to OpenRouter, you need to add the vision-sidecar line to your profile’s cordis.patch.yml and provide OPENROUTER_API_KEY.
This route still needs to satisfy the OpenAI Chat Completions requirement.
Applicable Scenarios and Cautionary Notes¶
Suitable for developers who can already call text models with DSH and want to add image understanding to conversations without replacing the inference model.
It is well-suited for use cases such as:
- Using the default LLM7.io anonymous vision route.
- Using a custom OpenAI-compatible vision provider.
- Preserving the existing
targetProviderandtargetModelinference routes. - Letting vision descriptions enter the DSH session instead of just temporary rewriting.
Points to consider before use:
- The remote vision provider receives full images. Do not send personal, confidential, or regulated images unless the provider’s terms are acceptable.
- The default LLM7.io limits are documented values; limits and model availability may change.
- Free options in the documentation were checked on 2026-08-14; verify current limits and privacy terms before use.
- Marking text detected in images as untrusted data is prompt injection hardening and does not guarantee that model-level prompt injection can be eliminated.
- The plugin runs with the current dsh process. Review the source code and MIT license before installation.
- The DSH community directory is an independent site, not an official app store, and has no official affiliation with DeepSeek / 幻方.
Directory and Source Code¶
- Directory page:
https://www.skillhub.cn/plugins/121103qwq/dsh-vision-sidecar - GitHub:
https://github.com/121103qwq/dsh-vision-sidecar