Curated research plugin market: adds a Research plugins page to Settings with hand-reviewed plugins for literature search, reference management, writing and workbenches — one-click install, update and remove pinned to the reviewed version, restart from the panel, and exactly one network request (its own catalog).
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-research
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:dsh-research/dsh-research
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Research plugins, inside Settings
English | 中文
A curated market for research plugins: a Research plugins page in the Settings sidebar, listing hand-picked plugins for literature search, reference management, writing and review — with an Install button that writes straight into the profile you are running.
dsh plugin --profile web add dsh-research
Restart dsh web, then open Settings → Research plugins.
dsh-research.com
The catalog behind the panel lives at dsh-research.com — the same list, in a browser, at /plugins. Each entry says what the plugin does and where it stops, and there is a walkthrough that goes from an empty machine to a finished talk. The site is generated from one JSON file; the panel fetches that same file, so the two can never drift apart.
Why this exists
The official market already installs anything in the community registry, and does it well. What it cannot do is tell a researcher which of its eleven hundred plugins are theirs. That is the part this does.
What an install actually does
The panel runs dsh plugin --profile <your profile> add <package> for you — the same command you would type. Four things fence it:
| Allowlist | The browser may ask for any package name; only a package this catalog lists is ever spawned. The catalog is a static file we publish. |
| Same-origin | A state-changing route reachable from any page would let a site you visited install into your profile. |
| One at a time | Two concurrent dsh plugin add runs race on one package.json and can leave a profile half-written. |
| Your profile, not a guess | The target comes from the --profile this host booted, so running a test profile never mutates your real one. |
Set allowInstall: false to keep the panel read-only.
Configuration
The bundle inserts one row (id: research-market). Override it from your profile's cordis.patch.yml (a patch replaces the whole config, so restate every key you keep):
- id: research-market
config:
catalogUrl: https://dsh-research.com/v1/market.json
profile: web # defaults to the profile this host booted
allowInstall: true
cacheSeconds: 900
timeoutMs: 8000
catalogUrl accepts any endpoint answering the DSH Community Market provider contract. Point it at your own and the panel lists yours instead.
Notes
- The panel's list and the one at dsh-research.com/plugins are the same list, built from the same
market.json. Nothing reaches it unread: installing someone else's package from a button we drew makes us the first place their bug gets reported. - The process layer is adapted from dsh-market (MIT), which worked out that
ctx.shellcannot write to a profile, that a macOS app launched from the Dock has no Homebrew on PATH, that pnpm v10 hangs without a TTY unlessCIis set, and that Windowsdshis a.cmdshim. - A newly installed plugin needs a restart before it loads; the row says so.
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-plugin-manager★ 8262
Plugin manager tab in DSH Settings → Plugins: install from npm or git with progress, enable/disable switches effective at next startup, conflict reconciliation with undo, and one-click hand-off to a fix session.
dsh-market/dsh-market★ 5245
Browse, search and install community plugins from inside DeepSeek Harness settings, with category filters, one-click updates, enable/disable, theme switching and configuration backup.
kingOfSoySauce/dsh-skin-market★ 174
Native skin marketplace and lifecycle manager that discovers community skins, displays previews and compatibility status, and provides verified one-click or manual installation paths.
bradeGithub/DSH-Plugins-Marketplace★ 169
GitHub-topic-driven plugin & skill marketplace: a Settings page that browses the auto-collected registry (the whole dsh-plugin topic plus the skills index, CI-refreshed every 2 hours) with one-click install, type detection, install-script and host-shadow-dependency safety confirmations, env-key management, and the STANDARD.md recognition spec.
awesome-dsh-plugin/dsh-find-plugin★ 164
Find plugins without leaving the agent: search this curated registry by keyword or category, with ready-to-run install commands.
Sanqi-normal/dsh-webui-market-plugin★ 105
In-harness plugin market for the dsh web GUI: browse the awesome-dsh-plugin.com catalog and install/uninstall plugins into a profile from Settings → Plugins → Plugin Market.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.