DSH (DeepSeek Harness) adopts a plugin-based architecture. When the base bundle lacks necessary search or image understanding capabilities, integrating an external CLI is a common solution. The dsh-mmx plugin bridges MiniMax CLI capabilities into DSH, addressing automatic fallback when a valid DeepSeek search Key is unavailable and enabling text-only models to understand images.

This is a plugin maintained by crazyma99 and licensed under the MIT License.

Core Features

  1. Web Search Fallback
    The plugin registers the mmx-search search provider with ctx.web. By using a profile patch to point searchProvider to mmx-search (or by letting DSH automatically select the only available provider when no provider is pinned), the web_search tool can be transparently served by MiniMax.

  2. Transparent Image Understanding
    When an image is sent to a text-only model, the plugin calls mmx vision describe before sending to generate a text description, and injects it using “model-visible replacement” — the image displays normally in the conversation record, while the model actually receives the text description. The read_image tool also returns a text description instead of an error. Multimodal models are passed through unchanged by default (the alwaysUseMmx setting can be changed to always use mmx).

  3. First-Run Onboarding (OOBE)
    The plugin detects whether mmx is installed or logged in. When it is not ready, the two capabilities above are automatically disabled. The settings page card provides a One-click Install feature (enter API Key → automatic npm install -g mmx-cli + mmx auth login → refresh status), along with manual installation guides separated by operating system. The plugin re-probes every 30 seconds and automatically enables when the CLI is ready.

Installation and Prerequisites

Prerequisite: Node.js >= 20 must be installed locally.

Installation methods are as follows:

# GitHub(推荐)
dsh plugin --profile web add github:crazyma99/dsh-mmx
# npm registry
dsh plugin --profile web add dsh-mmx
# 本地目录
dsh plugin --profile web add file:/path/to/dsh-mmx

Restart dsh web after installation.

Configuration and Usage

After installation, you need to configure it to enable the features.

1. Search Provider Pinning

The DSH base bundle pins the search provider to deepseek-official by default. If DeepSeek search is not configured with a valid key, override it in the profile’s cordis.patch.yml:

- id: web
  config:
    searchProvider: mmx-search

2. Settings Page Configuration

In the plugin card on the DSH settings page, you can configure the following options:
* enabled: master switch (default true).
* searchEnabled: register the mmx search provider (default true).
* visionEnabled: transparent image understanding (default true).
* alwaysUseMmx: whether multimodal models also use mmx for image understanding (default false).
* visionPrompt: image understanding prompt template.

Click “One-click Install” and enter your API Key to automatically complete the installation and login for the mmx CLI.

Privacy and Security

  • API Key Security: The plugin does not read, print, or log your API Key.
  • Image Processing: Images are uploaded to the MiniMax API (base64) via the mmx CLI for image understanding; temporary image files are set to permission 0600 and deleted after use.
  • Process Security: All child process calls use spawn directly with argument arrays, and timeouts and cancellation propagation are configured.

Uninstallation

dsh plugin --profile web remove dsh-mmx