Introduction¶
In DeepSeek Harness (DSH), if the current session uses a pure text model, image messages cannot directly enter the model context. dsh-vision is used to solve this problem: it automatically bridges image messages into text descriptions generated by the visual model, while preserving the original image in human transcription, and allowing the continued use of the see_image tool for follow-up questions.
What is it¶
dsh-vision is a DSH plugin with the package name dsh-vision, an MIT license, and the GitHub repository reimu-create/dsh-vision. It provides image description bridging for pure text models and offers a manual image recognition tool.
Core Features¶
- Image messages are automatically bridged into text descriptions generated by the visual model.
- Surface replace events are appended to the session log, while the original image is retained in human transcription.
- Supports the
see_imagemanual/follow-up question tool, with input parametersfile_pathand an optionalquestion. - The plugin does not intervene when the current model itself supports
imageinput. - Nested images returned when the model calls tools like
read_imagecan be recursively recognized and rewritten. - When a visual call fails, the current request still succeeds and provides placeholder text; the next attempt automatically retries.
- Configurable visual model routing, output limits, mode
auto/manual/both, and timeout. - Visual calls do not enter session usage statistics.
Installation and Activation¶
- Execute the following command to add the local directory to the
webprofile.
dsh plugin --profile web add link:D:/dsh-plugins/dsh-vision
- Execute the following command to check if the plugin appears in the current profile configuration.
dsh --profile web --dump-config | Select-String dsh-vision
If dsh-vision appears in the output, it indicates the plugin has been added to the current profile configuration.
Configuration¶
The plugin needs to be used with uiopt. After installing uiopt, you can configure it in the interface: Settings → Plugins → Extra Plugins → Configurable Plugins → Expand the dsh-vision card to configure the visual model, output limits, mode, and timeout.
If uiopt is not installed, configuration can only be done manually via settings.yaml, and switching the visual model in the interface is not possible.
The file-based method involves configuring provider, model, maxTokens, mode, and timeoutMs under the dsh-vision section in settings.yaml. An example is as follows:
dsh-vision:
provider: <visual-provider>
model: <vision-model>
maxTokens: <max-tokens>
mode: auto
timeoutMs: <timeout-ms>
The mode can be configured as auto, manual, or both.
Typical Usage¶
Automatic bridging requires no extra calls: when an image appears in a request to a pure text model, the plugin bridges the image to a text description and then passes it through.
Use the see_image tool for manual image recognition or follow-up questions, providing file_path and optionally question.
If the current model itself supports image input, the plugin does not intervene.
If the model calls tools like read_image and returns nested images, the plugin can recursively recognize and rewrite them.
Billing and Failures¶
A new image is billed once upon its first appearance. Visual calls do not enter session usage statistics.
When a visual call fails, the current request still succeeds, placeholder text is provided at the image position, and the next attempt automatically retries.
The visual model must genuinely support image input; configuration errors will result in placeholder text but will not cause an infinite loop.
Applicable Scenarios and Notes¶
Suitable for:
- The main session model is a pure text model, but you need to utilize image information.
- You need to preserve the original image in human transcription while allowing the model to see the text description.
- You need to manually recognize or ask follow-up questions about a specific image file via
see_image.
Notes:
- Requires the use of
uiopt; ifuioptis not installed, configuration can only be done manually viasettings.yaml, and switching the visual model in the interface is not possible. - The plugin depends on the following DSH preview APIs:
llm/stream waterfall
surface replace
foldSurface
If an rc upgrade changes the signatures, they must be updated synchronously.
peerDependenciesrequirements:
@deepseek-ai/dsh-llm ^0.1.0-rc.6
@deepseek-ai/dsh-session ^0.1.0-rc.6
@deepseek-ai/dsh-tools ^0.1.0-rc.6
- The plugin runs with the permissions of the current DSH process; source code and license should be checked before installation.
- The DSH Community Directory is an independent site and has no official affiliation with DeepSeek / Fenxiang.
Conclusion¶
The value of dsh-vision lies in allowing pure text models to obtain image descriptions while preserving the original image in human transcription, and providing an entry point for follow-up questions via see_image.
GitHub: https://github.com/reimu-create/dsh-vision.
The directory page can be found by searching for dsh-vision in the DSH Community Directory.