Introduction

When extending capabilities in DeepSeek Harness (DSH), a common issue is not “can I add a plugin,” but rather the scattered nature of multiple configuration entry points: MCP servers, user skills, API key rotation, and image understanding endpoints often require changing configurations or writing extra tools separately. XJungit/omdp organizes these capabilities into three independently installable DSH plugins and places them in a single monorepo. Each plugin resides in a separate subdirectory and can also be installed as a standalone DSH bundle. Below, we introduce its functions, installation methods, and usage boundaries.

What is this

XJungit/omdp is a DeepSeek Harness (DSH) plugin monorepo maintained by XJungit under the MIT license. It places three @omdp/* plugins in different subdirectories:

  • dsh-connector/: @omdp/dsh-connector
  • dsh-key-fallback/: @omdp/dsh-key-fallback
  • dsh-vision-bridge/: @omdp/dsh-vision-bridge

The repository automatically publishes npm packages on every v* tag via GitHub Actions. You can install by plugin granularity or install only one of them.

Core Functions

@omdp/dsh-connector

Manages three things in the Connector settings page of the DSH Web UI:

  • MCP servers;
  • User skills;
  • Read-only market explorer.

The market data for this plugin is stored only in process memory, with a TTL of 30 minutes, and is not persisted to disk.

@omdp/dsh-key-fallback

Provides a multi-API key pool, automatic rotation, display of the actual key in use, and supports management operations such as key cooldown/deletion. Retry of failed requests is handled by DSH’s dsh-llm-retry.

@omdp/dsh-vision-bridge

Enables text-only models to process pasted or dragged-in images via a configurable OpenAI-compatible multimodal endpoint. It uses Agnes agnes-2.5-flash by default.

Installation and Activation

npm Installation

Add the required packages to the dependencies in ~/.dsh/profiles/<name>/package.json. This article does not specify a fixed version number; please write the version after selecting the currently available one on npm:

@omdp/dsh-connector
@omdp/dsh-vision-bridge
@omdp/dsh-key-fallback

Then execute:

cd ~/.dsh/profiles/<name>
pnpm install

If installing only one, just add the corresponding dependency.

Update

cd ~/.dsh/profiles/<name>
pnpm update @omdp/dsh-connector @omdp/dsh-vision-bridge @omdp/dsh-key-fallback

GitHub Installation

If you don’t want to clone locally first, you can also use dsh plugin add to install from a GitHub subdirectory:

dsh plugin --profile web add github:XJungit/omdp#path:dsh-connector
dsh plugin --profile web add github:XJungit/omdp#path:dsh-vision-bridge
dsh plugin --profile web add github:XJungit/omdp#path:dsh-key-fallback

If there is no global dsh command, you can replace the dsh prefix with npx @deepseek-ai/dsh:

npx @deepseek-ai/dsh plugin --profile web add github:XJungit/omdp#path:dsh-connector
npx @deepseek-ai/dsh plugin --profile web add github:XJungit/omdp#path:dsh-vision-bridge
npx @deepseek-ai/dsh plugin --profile web add github:XJungit/omdp#path:dsh-key-fallback

Git Installation for pnpm ≥10

GitHub installation fetches the source code. pnpm defaults to refusing to run prepare/build scripts for git dependencies; if the first add fails, you need to explicitly allow the build scripts for the corresponding package in the profile’s pnpm-workspace.yaml:

allowBuilds:
  '@omdp/dsh-connector': true
  '@omdp/dsh-vision-bridge': true
  '@omdp/dsh-key-fallback': true

After saving, re-run the corresponding add command. This whitelist is equivalent to allowing package code to run during install, so it should be enabled only for trusted sources. For untrusted sources, you can pin a commit, for example using a selector similar to the one below:

github:XJungit/omdp#<sha>&path:<subdir>

Typical Usage

Managing MCP and Skills

After installing @omdp/dsh-connector, access the management interface from the Connector settings page of the DSH Web UI. You can maintain MCP servers, user skills, and browse the read-only market explorer on the same settings page. The market explorer data is retained only in process memory and expires after a 30-minute TTL without being written to disk.

Managing Multiple API Keys

After installing @omdp/dsh-key-fallback, you can maintain a multi-API key pool. It supports automatic rotation, display of the actual key in use, and management operations such as key cooldown/deletion. Retry of failed requests is handled by DSH’s dsh-llm-retry.

Adding Image Understanding for Text-Only Models

After installing @omdp/dsh-vision-bridge, you can configure an OpenAI-compatible multimodal endpoint for text-only models. When you paste or drag in an image, the plugin processes it through that endpoint. It uses Agnes agnes-2.5-flash by default.

Suitable Scenarios and Notes

This repository is suitable for the following scenarios:

  • Want to unify the management of MCP servers, skills, and market browsing in the DSH Web UI;
  • Need multiple API keys and want to rotate them between requests and view the actual key in use;
  • Use text-only models but want to offload image processing to an external multimodal endpoint.

Note the following before use:

  1. DSH plugins run with the permissions of the current dsh process. Source code, dependencies, and licenses should be checked before installing. This repository declares an MIT license, but it is still recommended to verify the actual source of installation.
  2. Git installation fetches the source code. allowBuilds is not a regular dependency; it allows running scripts or code within the package during install. For untrusted sources, pin a commit.
  3. The market data of @omdp/dsh-connector is only retained in memory for 30 minutes and is not suitable as a persistent cache.
  4. @omdp/dsh-key-fallback is not responsible for retries; retries are handled by DSH’s dsh-llm-retry.

Links