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 athttps://dsh-research.com/plugins/. - The panel uses the same
market.jsonashttps://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-marketviacordis.patch.yml. catalogUrlcan 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 addcommands causing apackage.jsonrace condition and resulting in a half-written profile. - profile: The installation target is taken from the
--profilewhen 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.shellcannot 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
CIin non-TTY scenarios. - On Windows,
dshis a.cmdshim.
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