Skip to content

OoWJZZoO/dsh-read-image

30Last commit Aug 15, 2026

dsh-read-image DSH plugin

dsh-read-image is a plugin for DeepSeek Harness that allows non-multimodal models to process images. It intercepts pasted images, replaces them with [Image #N] placeholders, and registers a read_image tool that calls a separate vision model to describe the image. The plugin works on both text-only and native multimodal routes, falling back to the built-in tool when appropriate.

How to install the dsh-read-image DSH plugin

dsh plugin --profile web add github:OoWJZZoO/dsh-read-image

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

dsh-read-image DSH plugin data source

dsh-read-image DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-read-image DSH plugin can do

  • Pasted images in text-only routes are accepted and replaced with [Image #N] placeholders, preventing pixel data from reaching the text API.
  • Registers a first-class read_image tool that can read images by index (image_index) or file path (file_path), with optional overrides for prompt, reasoning effort, timeout, and token limits.
  • Supports configuration via settings.yaml or a Web UI page, including vision provider, model, and default parameters for the tool call.
  • Includes an environment self-check that runs on startup and fails safe if any harness contract changes, logging diagnostics without breaking the harness.

Where the dsh-read-image DSH plugin fits

  • Ask a text-only model to describe an image pasted in the chat by using the read_image tool.
  • Read an image from a local file path (e.g., /path/to/diagram.png) and have the model analyze its content.
  • Enable models that lack native multimodal support to perform OCR, object detection, or visual reasoning through a separate vision model.
  • Re-read the same image multiple times for repeated analysis or different prompts.

Who the dsh-read-image DSH plugin is for

  • DeepSeek Harness users who want to extend text-only models with image understanding.
  • Developers and researchers working with text-only LLMs who need occasional visual input without switching to a multimodal model.

dsh-read-image DSH plugin limitations

  • Requires a separate vision model to be configured (provider and model must support image input).
  • Depends on the harness's internal contracts; the safety self-check may prevent loading if the harness version changes incompatibly.
  • Vision model calls consume API tokens and may incur costs; default timeouts are generous (5 minutes) but can be adjusted.
  • The plugin is in early development (v0.1.0) and may not be compatible with future release candidates of DeepSeek Harness.

dsh-read-image DSH plugin: from the repository README

Quoted from the OoWJZZoO/dsh-read-image README, the upstream source of the dsh-read-image DSH plugin. Copyright remains with the original authors.

> Plug-and-play image reading for text-only DeepSeek Harness models: pasted images are admitted, projected as `[Image #N]`, and read back through a first-class `read_image` tool backed by a configurable vision model — no preset changes required. A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) plugin that lets **non-multimodal models "see" images**. - **Pasted images are no longer rejected** — text-only routes are declared to accept image input, so the api-proxy admission gate lets them through. - **`[Image #N]` projection** — on text-only routes, image blocks in the model request are replaced in place with `[Image #N]` text; pixels never reach a text API. Native multimodal routes pass through untouched. - **First-class `read_image` tool** (registered automatically in every session, shadowing the built-in tool of the same name): - `image_index` — read the Nth image in the conversation (`[Image #N]`); - `file_path` — read an image file from a path (PNG/JPEG/WebP/GIF); - `prompt` / `reasoning_effort` / `timeout_ms` / `max_tokens` / `max_thinking_tokens` — optional overrides; omitted parameters use the configured defaults (the current real defaults are int

Read the full READMERepository license: MIT

dsh-read-image DSH plugin questions

How do I install dsh-read-image?

Run `dsh plugin --profile web add github:OoWJZZoO/dsh-read-image` and then restart `dsh web`. You can also install manually by adding the package to your profile's dependencies and inserting a plugin row into `cordis.patch.yml`. See the README for detailed manual steps.

What vision model do I need to configure?

You need any multimodal model that supports image input (e.g., pi-ai route with `input: [text, image]`). Set the provider and model under the `dsh-read-image` section in `settings.yaml` or via the Web UI under Settings → Read image. The plugin will use that model to process images.

Why does read_image return nothing or an error?

Common causes: the vision model is not configured correctly, the model provider does not support image input, the image file path is invalid, or the model's token limit (thinking + output) is exceeded. Check the session logs and the guard log at `~/.dsh/logs/dsh-read-image-guard.log` for diagnostics.

Can I use read_image on a native multimodal route?

Yes, but on routes that already declare image input (e.g., mimo-v2.5), the plugin does not inject `[Image #N]` placeholders or register its custom tool. Instead, the built-in `read_image` tool (which returns the image itself) is used. The plugin only activates on text-only routes.

Does the plugin work on Windows?

Yes. The plugin runtime is pure Node.js and Windows is supported. All commands work with `%USERPROFILE%` instead of `~`. The harness handles Windows paths natively. Manual installation steps are the same; just ensure you run the scripts under Git Bash, WSL, or MSYS2 if you need the POSIX scripts.