Introduction

If you have previously installed plugins in Codex, Claude Code, or Pi, you probably have a collection of assets: hooks, slash commands, MCP servers, and skills. After switching to DeepSeek Harness (DSH), these cannot be moved directly over—because they are written in the format of another agent runtime, and their loading methods and lifecycles do not match; rewriting them one by one is clearly not worth the effort.

DSH’s philosophy is “everything is a plugin,” and this bridging work itself can also be completed by a plugin. The openma-ai/dsh-agents-plugins introduced below is such a Bridge: through a single package, it allows you to install Agent Plugins, Codex plugins, Claude Code plugins, and Pi packages within DSH.

What is it

dsh-agents-plugins is maintained by openma-ai, under the MIT license. The npm package name is @openma/dsh-agents-plugins-bridge (version 0.0.8 at time of writing); the repository address can be found at the end of the text.

Its operation can be summarized into three steps:

  1. Detect external package formats;
  2. Copy explicitly selected packages to the profile’s local storage;
  3. Materialize each supported capability into lines of reversible DSH lines: skill, MCP connection, hook, command/agent/monitor, Pi extension.

It does not simulate another agent runtime, nor does it stuff all capabilities behind a generic plugin. External plugin packages are split into lines of explicit DSH configuration the moment they enter the profile. Subsequent disabling, restoring, and uninstalling all have clear semantics (see below).

Core Features

Capability Coverage

According to the verified function list, the Bridge supports the following external capabilities:

  • Hooks for Codex and Claude Code;
  • MCP tools, resources, prompts, and server lifecycle; MCP connections reuse a single MCP SDK connection;
  • Claude agents, output styles, monitors, and LSP lines;
  • Pi extensions, tools, commands, skills, and their lifecycle;
  • MCP Apps: App HTML/AppBridge rendering only happens in the Web sandbox; TUI does not render.

Web Management Panel

After installing the Bridge into a web profile, open Settings → Plugins → Agent plugins, and you can:

  • Scan the status of local Codex, Claude Code, and Pi;
  • Register or import a marketplace;
  • Search the directory and install plugins;
  • View the capability lines and diagnostic information for each plugin;
  • Manage Pi package update checks.

Note: Closing the Web panel does not stop already installed hooks, commands, skills, MCP servers, or Pi extensions.

TUI Doesn’t Need a Second Implementation

There is no separate Bridge version on the TUI side. /plugin-bridge, imported slash commands, and user-callable skills are projected into the TUI’s searchable command menu via ACP, appearing alongside other commands.

Six Reversible Registries

The Bridge’s lifecycle kernel exposes six reversible registries, each responsible for one thing:

  • MarketplaceProvider: Discover marketplace directories and parse package sources;
  • PackageFormatProvider: Identify and normalize unpacked plugin packages;
  • ComponentAdapter: Map normalized components to explicit DSH lines;
  • InstalledPluginLocator: Observe a specific agent’s local plugin registration/caching;
  • MarketplaceRegistrationLocator: Observe a specific agent’s registered directories;
  • ActivationPolicy: Check and control lines that require explicit user trust.

Semantics of disable, enable, and uninstall

  • disable: Remove active lines, but keep the copied package;
  • enable: Restore the stored plan;
  • uninstall: Move the package copy to the profile’s local trash.

Installation and Activation

Prerequisites: Node.js 22.19 or newer, and DSH must be installed globally first. The following commands install the same Bridge package into both the web and tui profiles:

npm install -g @deepseek-ai/dsh

# Web Management Interface + Shared Host Capabilities
dsh plugin --profile web add @openma/dsh-agents-plugins-bridge@latest
dsh web

# Terminal UI + Same Shared Host Capabilities
dsh plugin --profile tui add @openma/dsh-agents-plugins-bridge@latest
dsh --profile tui

DSH profiles are mutually independent combinations: installing into web does not implicitly change tui, and vice versa. To use external plugins in a specific profile, run the add command once in that profile.

Typical Usage

After the steps above, the Bridge is installed in the corresponding profile. Let’s look at how to use it specifically.

View Active Bridge and Discovery Results

/plugin-bridge
/plugin-bridge marketplace list
/plugin-bridge discover
/plugin-bridge marketplace discover

These commands are used to view the currently active Bridge and read-only discovery results.

Add Marketplace and Install Entries

Marketplaces support both local directories and GitHub repositories as sources. After adding them, you can install the entries within the directory:

/plugin-bridge marketplace add /absolute/path/to/marketplace
/plugin-bridge marketplace add https://github.com/company/agent-plugins
/plugin-bridge marketplace add company/agent-plugins@main
/plugin-bridge install deployment-tools@company-tools

The first three lines are local directory, full GitHub URL, and shorthand for the same repository, respectively; the last line installs deployment-tools from the company-tools marketplace.

Import State Registered by Other Agents

Run the discovery command first, then import using the corresponding ID:

/plugin-bridge import codex-local-cache:personal/deployment-tools/1.2.3
/plugin-bridge marketplace import claude-code-registered-marketplaces:company-tools

The first line imports the plugin state locally registered by another agent, and the second line imports the marketplaces registered by Claude Code.

Security Note: Discovery is read-only; Import will first copy the selected package or directory to the Bridge storage in the local profile; external agent directories are never executed or modified in place.

Use Cases and Considerations

Suitable for:

  • Developers who have accumulated plugins in the Codex, Claude Code, or Pi ecosystem and hope to reuse them after switching to DSH;
  • Scenarios requiring Web and TUI to share the same set of plugin assets, or needing plugins to run continuously in a headless environment.

Headless scenarios (such as Pi extensions like pi-telegram that require a persistent Session) require coordination with Martty owner: Martty is only responsible for keeping the Session alive and calling explicitly declared start/stop commands; it will not automatically approve permissions or answer extension forms.

A few other points to note:

  1. Plugins run with the permissions of the current dsh process. Before installing any third-party plugins (including this one), it is recommended to read the source code and check the license; this plugin itself is MIT licensed.
  2. Untrusted App HTML for MCP Apps is only rendered in the Web sandbox; the terminal does not execute browser UI; MCP connections, tools, resources, prompts, and backend hooks in the TUI remain available.
  3. In a pnpm environment, the profile only parses the wrapper built into @openma/dsh-agents-plugins-bridge/*; dependency hoisting is not part of the runtime contract.

Conclusion

Simple review: dsh-agents-plugins turns “rewriting plugins when changing runtime” into “installing a Bridge package”. External plugins are copied into profile local storage, capabilities are materialized into lines of reversible DSH configuration, the Web panel and TUI command menu share the same set of Host capabilities, and disabling, restoring, and uninstalling all have clear semantics.

  • GitHub Repository: https://github.com/openma-ai/dsh-agents-plugins
  • Community Plugin Directory Page: https://www.skillhub.cn/plugins/openma-ai/dsh-agents-plugins

Final Note: skillhub.cn is a community-maintained plugin directory and has no official affiliation with DeepSeek or Fangfang.