Introduction

The core principle of DeepSeek Harness (DSH) is “everything is a plugin.” When developing with local models or orchestrating workflows, external capabilities are often needed. doubao-dsh-plugin was created specifically to solve the problem of “how to seamlessly invoke Doubao model capabilities within DSH.”

The plugin injects the doubao_ask tool into DSH through a locally running Doubao Relay (forwarded by Quicker). It supports web search, image generation, and multimodal image understanding, and provides browser-side capture for “pasting an image into a local path.”

Prerequisites: Doubao Relay

All capabilities of this plugin (search, image generation, and image understanding) rely on the OpenAI-compatible interface of a local Doubao Relay. The plugin itself does not include the Relay; the Quicker application must forward the local web version of Doubao into API calls.

Setup steps:

  1. Install Quicker.
  2. Download the shared action (click here to obtain).
  3. ⚠️ Note: This action has not been updated for a long time and requires manual code replacement. In Quicker, right-click the action and select “Edit”, find the “Run C# code” step, replace the entire script code area with the code from c#code.txt, save, and run the action again. At this point, the Relay will listen on 127.0.0.1:56666.

If the Relay is not running, tool calls will result in errors.

Installation and Enablement

Use the official provided npm one-click install command:

dsh plugin --profile web add doubao-dsh-plugin

After installation, you must restart the harness for the changes to take effect. The client bundle automatically scans and assembles itself on startup.

Core Features

  • Tool injection: Registers the doubao_ask tool, making it immediately visible to the model on startup.
  • Web search and image generation: Supports real-time search and image generation. Images are displayed in the conversation as Markdown links.
  • Multimodal image understanding: Supports image understanding by passing a URL, base64, or local file path. If a local image exceeds 512KB, it is automatically compressed to 800px width before being sent.
  • Paste image to path (paste-to-path): This is a distinctive feature of the plugin. It intercepts paste events in the browser, saves the image bytes as a private temporary file (path format similar to <temp>/doubao-dsh-paste/p-*/paste<ext>), and inserts the path text into the input box. Text-only models will not trigger the “model does not support images” admission gate; after the model sees the path, it calls doubao_ask and sets the image parameter to that path.
  • Image deduplication and output: Automatically collapses duplicate image links, prioritizes keeping original image variants, and outputs a structured images field.
  • Logging: Fully records requests, responses, and other information.

Parameters

Parameter Type Required Description
query string Yes The question to search for or ask
image string No Image path (URL / data URL / local path)
system string No Additional system instruction
timeoutMs number No Timeout in milliseconds; default 90000

Usage

  1. Direct image understanding: Paste an image directly into the input box. The browser captures the image, saves it as a local path, and the model then invokes the tool for image understanding. The first image understanding may take about 15~20 seconds (depending on the Relay response speed).
  2. Instruction-driven interaction: Directly ask in the conversation to “search for X” or “generate an image of X”; the model will automatically invoke this tool.

Notes

  • This plugin runs with the permissions of the DSH process. Please check the source code and license before installing.
  • The client code runs in the browser and reuses the validation implementation logic from modlens.
  • Each request forcibly starts a new conversation (new_conversation).