DeepSeek Harness plugin

dsh-plugins-finder

Find DeepSeek Harness plugins from the dsh.so registry — like find-skill, but for dsh plugins.

Jump to install

Source facts

Repository
ihuajiu/dsh-plugins-finder
Latest update
Aug 17, 2026
Category
Plugin Markets & Managers
GitHub stars
3
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/ihuajiu/dsh-plugins-finder
Plugin: dsh-plugins-finder
Author: ihuajiu

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-plugin-finder

Find DeepSeek Harness plugins from the dsh.so registry — like find-skill, but for dsh plugins.

This plugin registers one agent tool, find_plugin: describe a need in natural language, and it searches the dsh.so plugin index for the best-matching plugins, returning name, GitHub stars, topics, description, verification level (L1–L5), security status & risk, an install command, and a detail link.

<p align="center"> <a href="https://www.dsh.so" rel="dofollow"> <img src="https://raw.githubusercontent.com/ihuajiu/dsh-plugins-finder/main/assets/dsh-so-logo.svg" alt="dsh.so logo" width="72"> </a> <br> <strong>Powered by <a href="https://www.dsh.so" rel="dofollow">dsh.so</a></strong> <br> <em>the DeepSeek Harness plugin registry — discover, compare and install plugins · 发现、对比并安装 DSH 插件</em> </p>

中文版: README.zh.md

Table of Contents

1. [Install](#1-install) 2. [Peer Dependency Warnings (Important)](#2-peer-dependency-warnings-important) 3. [Usage](#3-usage) 4. [Output Format](#4-output-format) 5. [Search Tips](#5-search-tips) 6. [Configuration](#6-configuration) 7. [Data Source & Matching](#7-data-source--matching) 8. [FAQ](#8-faq) 9. [Development](#9-development)

---

1. Install

Install from the dsh.so marketplace (recommended):

dsh plugin --profile web add dsh-plugins-finder

Other profiles work the same — just change the name:

dsh plugin --profile tui add dsh-plugins-finder
dsh plugin --profile headless add dsh-plugins-finder

Install from a local checkout (development):

dsh plugin --profile web add E:\AgentsWs\PluginBuilder\dsh-plugin-finder

> ⚠️ Version note: if you have 0.1.0, upgrade first — 0.1.0 installed @deepseek-ai/dsh-tools as a regular dependency, which conflicts with the host's copy and crashes the agent loop with Cannot read properties of undefined (reading 'prepare'). Fixed in 0.1.1; reinstall with: > > ``sh > dsh plugin --profile web add dsh-plugins-finder@^0.1.1 > ``

Restart the web profile for the new bundle to load:

dsh web

After the restart, the find_plugin tool appears in the session — just tell the agent what you need (see [Usage](#3-usage)).

Upgrade / 升级

dsh plugin --profile web add dsh-plugins-finder@latest
dsh web    # restart to load the new bundle

Uninstall / 卸载

dsh plugin --profile web remove dsh-plugins-finder
dsh web    # restart to unload the bundle

> ⚠️ Always remove by package name — never pass a local path to remove/del, or it deletes the source directory's files / 卸载务必用包名,绝不把本地路径传给 remove/del,否则会删掉源码目录的文件。

---

2. Peer Dependency Warnings (Important)

You will very likely see this pnpm output during install:

WARN  Issues with peer dependencies found
└─┬ dsh-plugins-finder 0.1.1
  ├── ✕ missing peer @deepseek-ai/cordis@^4.0.1
  ├── ✕ missing peer @deepseek-ai/dsh-tools@0.1.0-rc.6
  └── ✕ missing peer @deepseek-ai/schemastery@^3.18.1

This is a benign false positive — no action needed; the plugin works normally.

Why it appears

  • dsh plugin add works by running pnpm add in the profile directory; pnpm checks peer dependencies only against the web profile's own declared dependencies (currently just dsh-plugins-finder).
  • The three @deepseek-ai/* packages are managed by the DSH host and actually live one level up, in ~/.dsh/profiles/node_modules.
  • At runtime, Node's module resolution walks up the directory tree, so the plugin resolves the host-provided packages just fine.

How to verify it is fine

Just confirm the host-side versions satisfy the plugin's requirements. Verified on the current environment:

Plugin requiresHost hasResult
@deepseek-ai/cordis@^4.0.14.0.1
@deepseek-ai/dsh-tools@0.1.0-rc.60.1.0-rc.6
@deepseek-ai/schemastery@^3.18.13.18.1

Compatibility with dsh / dsh 适配版本

  • Target dependency line / 目标依赖线: @deepseek-ai/dsh-tools@0.1.0-rc.6 · @deepseek-ai/cordis@^4.0.1 · @deepseek-ai/schemastery@^3.18.1 — the dsh rc.6 release line / 即 dsh rc.6 系列。
  • Tested on / 实测环境: dsh 10.28.1 (web profile).
  • Status / 状态: author-declared (Declared), not independently verified — follows dsh.so's compatibility-matrix semantics / 作者声明(Declared),未经独立验证——遵循 dsh.so 兼容性矩阵语义。
  • After upgrading dsh / 升级 dsh 后自查: restart the profile and confirm find_plugin appears; if a major dsh upgrade crosses the dependency line, run dsh plugin --profile web update dsh-plugins-finder before retrying / 重启 profile 并确认 find_plugin 存在;若大版本升级跨了依赖线,先执行 dsh plugin --profile web update dsh-plugins-finder 再试。

> In fact, any third-party DSH plugin that correctly declares peer dependencies triggers the same warning when installed into a profile (the harness's own @deepseek-ai/dsh-tool-cordis declares @deepseek-ai/cordis the same way). It is pnpm being "under-informed", not an error.

Fixes to avoid

1. Do not move the plugin's peerDependencies into dependencies — every plugin would then ship its own copy of the host's core packages, shadowing the host's singletons and re-triggering the ctx.tools crash (the 0.1.0 bug above). 2. Avoid explicitly installing the 3 peers into the profile — versions get pinned there; when the host upgrades its core packages, the plugin keeps loading the old ones, causing silent API mismatch.

If you only want a clean CI log, you can install the peers explicitly (in exchange for a one-time declares no dsh.bundle notice):

dsh plugin --profile web add @deepseek-ai/cordis@4.0.1 @deepseek-ai/dsh-tools@0.1.0-rc.6 @deepseek-ai/schemastery@3.18.1

For daily use: just ignore the warning.

---

3. Usage

find_plugin is an agent tool — no manual command; just tell the agent what you need and it calls the tool automatically. A few example prompts (Chinese works too):

  • "Find me a plugin for OCR / screenshots"
  • "I need a terminal TUI plugin"
  • "What dsh plugins exist for memory / RAG?"
  • "Find me a plugin for price tracking"
  • "帮我找支持 OCR / 截图转文字的 dsh 插件"
  • "有没有能识别图片内容的插件?"

Example conversations

English — OCR / screenshots

  • You: Find me a plugin for OCR / screenshots
  • Agent: automatically calls find_plugin with {"query": "vision OCR screenshots", "limit": 3} and returns a ranked list — see [Output Format](#4-output-format)
  • You: How do I install the top one?
  • Agent: Run dsh plugin --profile web add dsh-vision-router, then restart dsh web.

中文 — 终端 TUI

  • 你: 有没有终端 TUI 插件?
  • 助手: 自动调用 find_plugin,query 为 "terminal TUI" → 返回 dsh-tianshu-tuidsh-whale-tuidsh-tui 等结果
  • 你: 帮我装第一个
  • 助手: 执行 dsh plugin --profile web add dsh-tianshu-tui,然后重启 dsh web

Tool parameters

ParameterRequiredTypeDescription
querystringThe need, e.g. "vision OCR screenshots", "memory rag". Chinese and English both work; English matches better
limitnumberMax results; defaults to the maxResults config (5), clamped to 1–10

---

4. Output Format

Each result includes: rank, plugin name, stars, topics, verification level (L1–L5) and security status/risk badges, description, install command, detail link. Real examples below were captured from the live registry — ranks and star counts drift over time.

find_plugin("vision OCR screenshots", limit=3)

1. dsh-vision-router — 46★ [developer, vision] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   Eyes for text-only DeepSeek Harness agents: built-in free vision chain (no key) + pixel-level vision tools (Q&A, grounding, crop, pixel diff, colors, OCR, SVG trace, cutout, screenshots)……
   Install: dsh plugin --profile web add dsh-vision-router
   https://www.dsh.so/plugins/dsh-vision-router/

2. agent-vision-toolkit — 819★ [developer, vision, automation, ai, ui] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   为纯文本模型"看图"设计更好的视觉工具箱和技能,支持多图理解,图片问答,
   前端UI还原、GUI 自动化等……
   Install: dsh plugin --profile web add agent-vision-toolkit
   https://www.dsh.so/plugins/agent-vision-toolkit/

3. dsh-vision-toolkit — 317★ [vision, browser, automation, ui] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   让纯文本模型更好地做视觉任务的DeepSeek Harness插件:带意图的图片问答、长截图 OCR、UI 还原等……
   Install: dsh plugin --profile web add dsh-vision-toolkit
   https://www.dsh.so/plugins/dsh-vision-toolkit/

find_plugin("terminal TUI", limit=3)

1. dsh-tianshu-tui — 132★ [terminal, ui] · ✔ 基础验证通过 · 🔒 安全通过:低风险
   dsh-tianshu-tui — DeepSeek Harness terminal UI
   Install: dsh plugin --profile web add dsh-tianshu-tui
   https://www.dsh.so/plugins/dsh-tianshu-tui/

2. dsh-whale-tui — 0★ [developer, terminal, ui] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   grok-build style terminal UI for DeepSeek Harness: a Rust/ratatui TUI shipped as a dsh plugin bundle
   Install: dsh plugin --profile web add dsh-whale-tui
   https://www.dsh.so/plugins/dsh-whale-tui/

3. dsh-tui — 4★ [developer, terminal, ai, ui] · ✔ 已收录(未功能测试) · 🔒 安全通过:低风险
   Claude Code-style terminal UI for DeepSeek Harness agents, as an out-of-tree dsh plugin bundle
   Install: dsh plugin --profile web add dsh-tui
   https://www.dsh.so/plugins/dsh-tui-4/

find_plugin("memory rag", limit=3)

1. dsh-memory — 2★ [terminal, knowledge, storage] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   Cited memory over DSH's lossless session log — distilled, human-auditable facts with citations……; memory_read/memory_expand tools, recall index, and a dsh-memory CLI.
   Install: dsh plugin --profile web add dsh-memory-2
   https://www.dsh.so/plugins/dsh-memory-2/

2. dsh-memory — 1★ [knowledge, storage] · ✔ 基础验证通过 · ⚠️ 安全提示:中风险
   Durable cross-session SQLite memory for DeepSeek Harness
   Install: dsh plugin --profile web add dsh-memory
   https://www.dsh.so/plugins/dsh-memory/

3. mindspace-dsh-session-memory — 1★ [knowledge, storage] · ✔ 基础验证通过 · 🔒 安全通过:低风险
   Editable, session-isolated personalization memory for DeepSeek Harness
   Install: dsh plugin --profile web add mindspace-dsh-session-memory
   https://www.dsh.so/plugins/mindspace-dsh-session-memory/

> 💡 Query intent matters: "price tracking" matches cost/balance-tracking plugins (dsh-balance, deepseek-harness-wallet), not price-comparison scrapers — matching reflects what the registry actually describes.

No-match response:

No plugins in the dsh.so registry matched that query. Suggest broader terms (e.g. "image", "terminal", "memory").

Every result (matches or no-match) ends with a Powered by dsh.so footer plus a copyright/license line (dsh-plugin-finder v0.1.8 · © 2026 zhoushimin · Apache-2.0). Disable with attribution: false.

---

5. Search Tips

  • Use English keywords: matching tokenizes the query, so single English words (ocr, rag, tui) hit far better than long phrases.
  • Be specific: "terminal TUI" beats vague descriptions.
  • Use topic tags: e.g. vision, browser, automation, ui — topic hits weigh more.
  • An empty query returns the top entries by stars (the model rarely does this, but the behavior exists).
  • Matching is keyword scoring, not AI semantics: name hit +3, topic hit +2, description hit +1, ties broken by stars. If wording differs a lot, try rephrasing.

---

6. Configuration

Configure in the host composition or an agent preset's cordis.yml (defaults are fine, usually no change needed):

- insert:
    - id: dsh-plugin-finder
      name: dsh-plugins-finder
      config:
        indexUrl: https://www.dsh.so/plugins-index.json   # override for self-host / testing
        maxResults: 5                                      # default result count
        cacheTtlMs: 600000                                 # cache the index for 10 min
        timeoutMs: 15000                                   # fetch timeout (ms)
ConfigDefaultDescription
indexUrlhttps://www.dsh.so/plugins-index.jsonMachine-readable dsh.so plugin index URL
maxResults5Default result count when limit is not passed
cacheTtlMs600000 (10 min)How long to reuse the fetched index before refetching
timeoutMs15000Fetch timeout in milliseconds
attributiontrueAppend a "Powered by dsh.so" promotion and copyright footer to every result

---

7. Data Source & Matching

  • Data source: https://www.dsh.so/plugins-index.json — a machine-readable index of every plugin listed on dsh.so (id, name, description, stars, topics, install, url, verification level, security status & risk).
  • Matching: the query is tokenized and each token is scored — name contains +3, topic contains +2, description contains +1; results sort by score, ties by stars, then take the top limit.
  • Cache: the index is reused within cacheTtlMs; no repeated requests.

---

8. FAQ

Q: Installed, but no find_plugin tool in the session? A: Check two things: ① dsh plugin --profile web list confirms it is installed; ② you must restart dsh web for a new bundle to load.

Q: Should I act on the missing peer warnings? A: No — they are a false positive; see [Section 2](#2-peer-dependency-warnings-important).

Q: No results for my query? A: Use broader English terms such as "image", "terminal", "memory", or drop overly specific qualifiers.

Q: How do I update the plugin? A: dsh plugin --profile web add dsh-plugins-finder@latest, then restart.

Q: How do I uninstall? A: dsh plugin --profile web remove dsh-plugins-finder, then restart.

Q: PowerShell error "The splatting operator '@' cannot be used..."? A: That only happens with scoped packages (@scope/name) — PowerShell treats a leading @ as the splat operator, so quote the name: dsh plugin --profile web add '@scope/name'. This plugin is unscoped, so no quotes are needed.

Q: Boot fails with ERR_MODULE_NOT_FOUND: Cannot find package 'dsh-plugins-finder'? A: A stale install entry (or the bundle patch name) still references the old unscoped name. Remove by package name and reinstall: dsh plugin --profile web remove dsh-plugins-finder, then add again.

Q: The npmjs.com page shows an older version than the registry? A: The website caches; the registry is authoritative. Verify in a terminal: npm view dsh-plugins-finder version --prefer-online; hard-refresh the page (Ctrl+F5) or wait a few minutes.

Q: How do I check which version is installed? A: dsh plugin --profile web list shows the profile's dependency; npm view dsh-plugins-finder version shows the latest on npm.

---

9. Development

pnpm install     # or npm install (peers come from the dsh host; devDependencies are for local build/test)
pnpm build       # tsc -> lib/
pnpm test        # node --test (match logic unit tests)
  • The bundle patch is declared in cordis.patch.yml, referenced by dsh.bundle.patch in package.json.
  • When publishing to npm, include lib/, cordis.patch.yml, README.md, and README.zh.md (see the files field in package.json).

Release verification / 发布后自检

After each npm publish, run the automated install check to confirm both supported install sources still work against the released artifact:

npm run verify:install            # offline: npm registry + GitHub, functional smoke
npm run verify:install -- --live  # also queries the real dsh.so index

The script installs dsh-plugins-finder@<version> from npm and from github:ihuajiu/dsh-plugins-finder into throwaway dirs (mirroring a dsh profile's settings), asserts the installed bundle matches the expected name/version and ships lib/index.js + lib/match.js, then runs a functional smoke of the matching logic. It exits non-zero if either source breaks. npm run verify (test + verify:install) is the full gate.

---

License

Apache-2.0 · Copyright (c) 2026 zhoushimin