DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Scout — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-plugin-scout

Plugin Scout

从 GitHub topic:dsh-plugin 发现并验证 DeepSeek Harness 插件——使用类别、信任评分、与官方同类插件的兼容性;通过官方安装器一键安装(默认禁用)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-scout@0.1.3
README兼容性版本

兼容性与来源证明

Plugin Scout 以 dsh-plugin-scout 发布,当前版本为 0.1.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/15

版本

0.1.3stable
2026/10/15
0.1.1stable
2026/10/14
0.1.0stable
2026/10/14

相关插件

正在加载相关插件…

最新版
0.1.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
207.7 kB
文件数
10
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/10/15
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

DSH Plugin Scout

English | 中文

· MIT

Discover and verify DeepSeek Harness plugins published under the GitHub topic dsh-plugin, from inside DSH. Plugins are grouped by purpose, ranked by trust score, and checked against the official peer-compatibility rule. Supports DSH 0.2.x (>=0.2.0-rc.2 <0.3.0); tested on desktop 0.2.0-rc.2.

The in-app UI is currently Chinese only. The plugin's title and description in the official Plugins page are localized (locale/en.json, locale/zh.json).

Install

Open the official Plugins page → Add plugin, and enter one of:

SpecNotes
dsh-plugin-scoutRecommended. Prebuilt npm package with provenance; no install scripts, no build approval needed
Absolute path of a prebuilt dsh-plugin-scout-<version>.tgz, if supplied with a releaseBypasses the npm registry; the current tag workflow creates release notes only and does not attach a tarball

From the CLI: dsh plugin --profile <profile> add dsh-plugin-scout. Enable it on the Plugins page; a 发现插件 (Discover plugins) entry appears in the sidebar.

Do not install from github:fegnze/dsh-plugin-scout: a git install fetches source without lib/, and this repository deliberately ships no prepare script.

One-click install, through the official installer

The Install button in the details drawer takes the same path as the official Add plugin: inspect first, then installBundle(spec, {enabled: false, requestId, registry}). Installed plugins start disabled; Enable is a separate click (setBundleEnabled).

  • Plugins with install hooks, or whose DSH peers do not cover the running version, need a second click to install.
  • When the official installer blocks dependency build scripts (pendingBuilds), they are listed by name; a double click on Allow and reinstall retries with approvedBuilds.
  • Cancel install calls cancelInstall with the same requestId; a lost reply is recovered with waitForInstall. On failure the official installer restores package.json and the lockfile.
  • Uninstalling and version exemptions stay on the official Plugins page. Scout never calls removeBundle; the tests fail if it does. Without the official pluginManager, the Install button is hidden and the drawer falls back to "copy pinned spec + open the Plugins page".

Data sources (first-party only)

SourceUsed for
GitHub GraphQL search(topic:dsh-plugin)Repository metadata, root package.json, cordis.patch.yml text (never evaluated)
registry.npmjs.org/<name>/latestThe manifest that would actually be installed: peers, install hooks, repository, provenance
Official pluginManager.listBundles / inspectInstalled state; the official pre-install check (resolves only, runs no code)
Official pluginManager.installBundle / waitForInstall / cancelInstall / setBundleEnabledOne-click install (disabled by default), cancel, separate enable; progress from plugin-manager/install-state and install-log events

No third-party marketplace or aggregator is used.

Crawling, measured (2026-10): the topic holds about 19,000 repositories, 12,700 of them created in August, many of them same-name copies. GitHub search returns at most 1,000 results per query, so Scout bisects time windows adaptively (≤900 results per window, 60 s minimum window). Pages are 50 items: 100-item pages return 502 in dense windows, so on 502 the page size steps down to 25, then 10, resuming from the same cursor. Later runs crawl incrementally by pushed.

Refresh is streaming and pays only for what changed:

  • Newest first. Windows are seeded geometrically (last 6 h / 1 d / 3 d / 1 w / 1 mo / 3 mo / older) and paged from the newest. Window counting and paging overlap (3 workers).
  • Publish while crawling. Each page is merged into the record set immediately and published every 1.5 s; the UI reloads the list when status.rev changes. The previous index stays usable throughout. A checkpoint is written every 30 s.
  • Pay for change. With an existing index, a light query fetches metadata only (100 per page, no blobs). Repositories whose pushedAt is unchanged keep their facts and only refresh stars and similar metadata; changed ones fetch package.json and the patch by node id in batches of 50.
  • npm in parallel. npm lookups run alongside the GitHub crawl (8 workers), only for repositories with new pushes, missing entries, or entries older than one day. Entries older than 7 days are refreshed oldest first, at most 800 per run.
  • Activation does not wait for the index. The ~30 MB index loads in the background; the UI first sees loaded: false and polls.

Measured on 2026-10-14 over a real network:

ScenarioFirst resultsTotalNotes
Incremental, 1,082 repos pushed4.5 s38 s125 refetched blobs, 963 metadata-only, 70 npm lookups
Cold full crawl6.7 s—~1,000 plugins browsable within 60 s; the rest fill in the background

Checks and trust score

CheckRulePoints
V1Root package.json declares dsh.bundle / dsh.client (otherwise not a plugin)20
V2Official peer rule: only @deepseek-ai/dsh and @deepseek-ai/dsh-*, semver.satisfies(runtime, range, {includePrerelease}), workspace:* means the running version. Inside the App, Scout calls dsh-app-boot.evaluatePluginCompatibility directlycovered 30 · no peers 10 · not covered 5
V3Install hooks: preinstall / install / postinstall / preparenone +15 · present −15
V4Source chain: the same-name npm package's repository points back to this repomatch +15 · mismatch −20 · unpublished 0
V5npm provenance+10
V6Activity: archived, pushed within 90 days, version drift (V6b)+5 / −10
V9Uses the @deepseek-ai/ scope but the repo is not owned by deepseek-ai−30
V10Forknote only
—Stars: min(5, round(log10(1+s)·2))≤5

The total is clamped to 0–100. Any ✕ marks the plugin as risky: copying its spec or installing it takes two clicks, and its badge shows ✕. Repositories sharing a package name collapse under one representative, chosen by: matching source chain > score > stars > earliest creation. The rest are listed as copies, hidden by default.

Ten purpose categories: UI, session, memory, agent, tools, models, security, development, bridges, domain. A category is scored from the official packages a plugin depends on (highest weight), topics/keywords (3), and text (2); a plugin is categorized only with a score of at least 2. On 41 hand-labelled plugins, the top-1 category is correct for at least 35.

UI and integration points

  • Discover page: sidebar 发现插件 → main panel with search, filters (compatibility, risk, kind, installed state, copies), category chips, sorting and paging.
  • Details drawer: checklist, score breakdown, category evidence, source chain and copies, surface (cordis inserts, client.inject, peers), and the official pre-install check. Footer:
    • Install / Enable / Cancel install, as described above.
    • Copy pinned spec: copies name@npmVersion, or github:owner/repo when unpublished.
    • Open in Plugins page / Add on Plugins page: installed plugins open their official details via pluginNavigation.openBundle; others switch to the official Plugins page.
  • Official Plugins page: plugins.detail.badge (trust score) and plugins.detail.section (checklist plus a link back to Scout). Packages missing from the index render null, taking no space.

Development

npm install --ignore-scripts
npm test          # builds lib/, then runs the core / host / client / manifest suites

Local debugging: add this directory's absolute path on the Plugins page (a link install; do not move the directory). Host changes need a full App restart; client-only changes need a window reload.

GitHub token, in order: DSH_SCOUT_GITHUB_TOKEN / GITHUB_TOKEN / GH_TOKEN, or gh auth token run through the DSH subprocess service. The token stays in process memory: never written to disk, never sent to the browser. Without one, the page asks you to run gh auth login.

Data and configuration

  • Index: ~/.dsh/dsh-plugin-scout/index.json stores facts only (repo metadata, slimmed manifests, npm cache) and is re-judged against the current runtime on every load, so compatibility verdicts follow DSH upgrades automatically.
  • Auto refresh: an in-process timer checks 45 s after start and runs an incremental crawl when the index is older than autoRefreshHours (default 24; 0 disables). No LaunchAgent or external scheduler.
  • Optional config: dataDir, topic, runtimeVersion (overrides runtime detection), autoRefreshHours.

Security boundaries

  • Routes live on DSH's own webServer (/dsh-plugin-scout/api/*). Every request must carry the custom header x-dsh-plugin-scout: 1 and pass DSH connection.admit (Host/Origin fence plus browser auth). Without the connection service, requests are refused (fail closed).
  • cordis.patch.yml is scanned for name: with a regex; YAML tags are never parsed. Crawled code is never executed and tarballs are never downloaded.
  • Style tags carry data-plugin / data-plugin-css before entering the DOM. Only --dsw-alias-* tokens are used; class names avoid substrings that host skins target; the drawer does not use role="dialog".

Layout

  • src/core/: classify.mjs (categories), verify.mjs (checks and score), crawl.mjs (GraphQL, windows, npm), store.mjs (fact index, queries).
  • src/host.mjs: runtime and token detection, refresh state machine, same-origin routes, in-process timer.
  • src/client/: Discover page, drawer, installer, official-page badge/section, styles.
  • scripts/build.mjs: esbuild bundling; both artifacts are executed after writing, as the gate.
  • test/: core (real GraphQL page, 41 labelled samples), host (fake-fetch end-to-end refresh, route auth), client (Happy DOM loading the built artifact), manifest (official packaging conventions).

After a DSH upgrade, re-check the official Plugins page slot names, the pluginManager methods, and the dsh-app-boot exports before re-accepting.

Official conventions followed

Based on the official repository's docs/user/develop/basic/publish, docs/cookbook/adding-a-package §5, and the @deepseek-ai/dsh-package-manifest types; test/manifest.test.mjs asserts each one.

ConventionThis package
Bundle: dsh.bundle.patch; patch rows reference the package by name./cordis.patch.yml → name: 'dsh-plugin-scout'
Only public author fields under dshmanifestVersion: 1, bundle, client (platform: web)
Display metadata: locale/en.json is the entry, other languages use the same fields; export ./locale/*.json and ./package.json, and ship themmeta.title / meta.description in en.json and zh.json
Icon: relative path inside the package, ≤256 KiB, self-contained./icon.svg
Packages sharing host instances are peers; the version gate reads only @deepseek-ai/dsh* peers@deepseek-ai/cordis ~4.0.4; @deepseek-ai/dsh-app-boot >=0.2.0-rc.2 <0.3.0 (optional, declares the range for the official gate)
engines.dsh is declarative>=0.2.0-rc.2 <0.3.0
Ship prebuilt artifacts; never ask users to approve buildsPublished to npm with --provenance; no prepare or other install hooks

Releasing

  1. Prepare the intended version in package.json and commit the release changes to main.
  2. Manually dispatch publish.yml from main with expected_sha set to the full approved commit SHA. Keep dry_run: true (the default) for validation first: the workflow checks the SHA, installs dependencies without lifecycle scripts, runs tests (including the build), and previews the package with npm pack --dry-run --ignore-scripts. A dry run does not publish. For an approved release, dispatch the same SHA with dry_run: false to run npm publish --access public --provenance --ignore-scripts.
  3. npm authenticates through Trusted Publishing (OIDC), so no npm token is stored in the repository; provenance is attached automatically. Configure npmjs.com → package Settings → Trusted Publisher for this GitHub repository and workflow publish.yml, or use npx npm@latest trust github dsh-plugin-scout --file publish.yml --repo fegnze/dsh-plugin-scout.
  4. Separately, git tag v<version> && git push origin v<version> triggers release.yml. It checks that the tag matches the package version and creates a GitHub Release with generated notes only; it neither publishes to npm nor builds or attaches a tgz. Supply a prebuilt archive separately if offering tarball installation.
  5. Keep the repository public with the dsh-plugin topic so it appears on https://github.com/topics/dsh-plugin and in Scout itself.

相关插件

继续浏览 search-research 分类下经过校验的插件。

Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:24 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel 无需密钥;通过 MCP 使用 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao,需密钥;OpenAI/Gemini/ClaudeDejadsh-dejaDeepSeek Harness 的 deja-vu 记忆:其他 40 个编码代理的会话历史,可搜索,并在每个步骤前调用——本地索引,无需 LLM。Builtin Browserdsh-builtin-browser适用于 DeepSeek Harness 的共享真实浏览器插件:安装即用——可由人类接管的可见原生浏览器,并由代理通过 CDP 驱动。DOM 级交互(兼容 React/Vue)、按任务隔离会话、Cookie 持久化(dsh_browser_auth)、CBladebrobladebro面向 AI 智能体的隐蔽高效代理式浏览器驱动。工具少、控制全面、真正隐匿,并最大限度提高令牌效率。