Preface

DSH’s extension mechanism revolves around plugins. Research users typically need to choose between tools for literature retrieval, reference management, writing, and reviewing, and then install the selected plugins into the currently used profile.

dsh-research is a research plugin market. It provides a Research plugins page in DSH’s Settings sidebar, listing curated plugins for literature retrieval, reference management, writing, and reviewing, and provides an Install button to write to the currently running profile. It is an independently maintained directory site, not an official app store.

What is this

dsh-research’s package.json author field is ai4scholar, and the license is MIT.

The problem it solves is: gathering research-related plugins into a single settings page, and using the same market.json for both the settings panel and the browser directory to prevent list drift.

Core Features

  • Provide a Research plugins page in the Settings sidebar, listing curated plugins for literature retrieval, reference management, writing, and reviewing.
  • Provide an Install button to write directly to the currently running profile.
  • The directory is located at dsh-research.com, and the browser list is at https://dsh-research.com/plugins/.
  • The panel uses the same market.json as https://dsh-research.com/plugins/, so the list will not drift.
  • Constrain installation behavior via allowlist, same-origin, one at a time, and profile parameters.
  • Support overriding the configuration line with id research-market via cordis.patch.yml.
  • catalogUrl can point to an endpoint implementing the DSH Community Market provider contract.

Installation and Enabling

First, install dsh-research itself:

dsh plugin --profile web add dsh-research

This command installs the plugin into the web profile. After installation, restart dsh web, then open:

Settings → Research plugins

The newly installed plugin needs to be restarted to load.

Typical Usage

Browse and install plugins from the directory

After opening the Research plugins page, select the plugins listed in the directory and click Install. The panel executes the dsh plugin add command for the current profile. The installation target is taken from the --profile when the host started, so the test profile will not modify the real profile.

Set the panel to read-only

If you only want to browse and don’t want the page to trigger installation, you can override the configuration with id research-market in the profile’s cordis.patch.yml:

- id: research-market
  config:
    allowInstall: false

The patch in cordis.patch.yml replaces the entire config. When overriding, you need to re-declare each key you want to keep; the example above only shows allowInstall: false.

Point to a custom market

After pointing catalogUrl to a custom endpoint, the panel can list its own market. This endpoint needs to implement the DSH Community Market provider contract.

Installation Behavior Constraints

  • allowlist: The browser can request any package name, but only packages listed in the directory will be launched; other package names will not be launched.
  • same-origin: Avoids state-changing routes from being triggered by arbitrary pages, thereby preventing installation of packages from visited sites.
  • one at a time: Avoids concurrent execution of two dsh plugin add commands causing a package.json race condition and resulting in a half-written profile.
  • profile: The installation target is taken from the --profile when the host started.

Security Notice

Installation calls the dsh command available to the current DSH host and affects the current profile. Plugins run with the permissions of the current dsh process. You should check the plugin source code and license before installation. dsh-research itself is under the MIT license; other plugins in the directory need to be judged individually according to their directory entries and licenses.

Implementation Details

The process layer is adapted from dsh-market (MIT). Its documentation records the following runtime environment details:

  • ctx.shell cannot write to the profile.
  • When a macOS app is launched from the Dock, it may not have the Homebrew PATH.
  • pnpm v10 may require setting CI in non-TTY scenarios.
  • On Windows, dsh is a .cmd shim.

Conclusion

The value of dsh-research lies in bringing the browsing, installation, and configuration of research plugins into DSH Settings, and keeping the panel and browser list consistent using the same directory file.

Directory page:

  • https://dsh-research.com/plugins/

GitHub:

  • https://github.com/dsh-research/dsh-research