Introduction¶
In DeepSeek Harness (DSH), some model routes still only handle plain text. For developers building agent workflows, a common issue is that while images can appear in the session, text models cannot directly read pixels or easily reference a specific image stably during subsequent reasoning.
dsh-read-image provides a plugin-based solution for this issue: allowing plain text routes to accept image inputs, projecting image chunks into [Image #N], and reading back image content via the read_image tool of a configurable vision model.
DSH’s plugin ecosystem emphasizes composable extension; such plugins should be viewed as part of an independent plugin ecosystem rather than an entry point to an official app store. Below, we introduce its positioning, core features, installation methods, typical usage, and security notes.
What is this¶
dsh-read-image is a DSH plugin maintained by OoWJZZoO under the MIT license.
It targets plain text DSH models and solves the “text models cannot read images” problem:
- Pasted images are no longer rejected;
- Image chunks are projected into
[Image #N]; - Automatically registers the
read_imagetool, supportingimage_indexandfile_path; - Reads back images as text content via a configurable vision model.
If the current route is natively multimodal, the plugin will fall back to the built-in read_image tool instead of continuing to inject [Image #N].
Core Features¶
Accept Image Input¶
In plain text DSH routes, pasted images are no longer rejected.
Project to [Image #N]¶
In plain text routes, image chunks are projected in-place into [Image #N]. This allows the model to see a referenceable text placeholder, facilitating the subsequent call of tools to read the image.
read_image Tool¶
The plugin automatically registers the read_image tool. This tool supports the following inputs:
image_index: Reads the N-th image in the session, corresponding to[Image #N];file_path: Reads the image file path.
When calling read_image, default values can be overridden. Relevant parameters include:
prompt
reasoning_effort
timeout_ms
max_tokens
max_thinking_tokens
Native Multimodal Route Fallback¶
When the base route of the session itself supports image input, the plugin falls back to the built-in read_image tool.
Read Image Settings Block¶
The plugin provides a “Read image” settings block for editing the vision model and defaults.
Installation and Enablement¶
First, confirm that the DSH version meets the requirements:
DeepSeek Harness (dsh) 0.1.0-rc.6 or later
Then execute the installation command:
dsh plugin --profile web add github:OoWJZZoO/dsh-read-image
Restart dsh web after installation.
The plugin runs on pure Node.js and can be used directly on Windows.
Note: Do not use the plugin installation command and manual installation simultaneously to avoid the plugin being registered twice.
Typical Usage¶
First, paste an image. At this point, the text model will see:
[Image #1]
Next, call read_image:
read_image image_index=1
This reads the first image in the session.
If reading an image from a file:
read_image file_path=/path/to/image.png
If overriding default values is needed, relevant parameters can be passed:
read_image image_index=1 prompt=<prompt> reasoning_effort=<effort> timeout_ms=<ms> max_tokens=<n> max_thinking_tokens=<n>
read_image can be called repeatedly, including re-reading the same image.
Configuration¶
Configuration is located at:
$DSH_HOME/settings.yaml
It can also be edited in the Web interface at Settings → Read image. This settings block is used to edit the vision model and defaults.
If force loading is needed after the environment self-check, you can set in the plugin configuration:
dsh-read-image:
guard.enabled: false
This is at the user’s own risk.
Security and Notes¶
The plugin performs an environment self-check and fails safely. If the self-check fails, the plugin does not load, and DSH starts normally. guard.enabled: false can force loading at the user’s own risk.
The plugin runs with the permissions of the current DSH process. You should check the source code and license before installation. This plugin’s license is MIT, and the repository address is:
https://github.com/OoWJZZoO/dsh-read-image
Conclusion¶
The value of dsh-read-image is quite specific: it enables plain text DSH routes to accept images, reference them using [Image #N], and read back content via a configurable vision model. For DSH workflows that need text models to participate in multimodal tasks, this is a practical, fallback-capable, and fail-safe plugin-based solution.
GitHub:
https://github.com/OoWJZZoO/dsh-read-image