deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English | 中文
Steam-style plugin marketplace for DeepSeek Harness. Browse 900+ community plugins on the web storefront, subscribe to the ones you want, then run one command to install everything into your dsh profile. A zero-dependency CLI and an in-harness plugin (search/stats/install commands from the chat) are included.
node scripts/dsh-subscribe.mjs sync --profile webmarket_search, market_stats,
market_install_commandsubscriptions.json (or copy the sync
command — the page also offers a one-click copy install command per
plugin).git clone https://github.com/zoahdev/dsh-subscribe
cd dsh-subscribe
# put the exported subscriptions.json here
node scripts/dsh-subscribe.mjs sync --profile web
That's it. Every subscribed plugin is installed into the web profile.
node scripts/dsh-subscribe.mjs list [query] # list/search plugins
node scripts/dsh-subscribe.mjs subscribe <id> # add a subscription
node scripts/dsh-subscribe.mjs unsubscribe <id> # remove a subscription
node scripts/dsh-subscribe.mjs status # subscribed vs installed
node scripts/dsh-subscribe.mjs export # write/normalize subscriptions.json
node scripts/dsh-subscribe.mjs install <id> # install ONE plugin now
node scripts/dsh-subscribe.mjs sync [--profile web] # install all subscriptions
node scripts/dsh-subscribe.mjs sync --dry-run # preview without installing
Examples:
node scripts/dsh-subscribe.mjs subscribe dsh-plugin-doctor
node scripts/dsh-subscribe.mjs install dsh-github-intelligence --profile web
node scripts/dsh-subscribe.mjs sync --profile web
The CLI has zero runtime dependencies (Node ≥ 18) and drives the real dsh
CLI under the hood: pnpm dlx @deepseek-ai/dsh plugin --profile <p> add <spec>.
Install the market inside DeepSeek Harness so the agent can find plugins for you:
dsh plugin --profile web add github:zoahdev/dsh-subscribe#path:/plugin
Restart dsh web, then ask your agent to search the market. The plugin
registers three tools:
| Tool | Purpose |
|---|---|
market_search |
Search 900+ plugins by query/category/verified flag, sorted by stars |
market_stats |
Total/verified counts and per-category breakdown |
market_install_command |
Returns the exact dsh plugin add commands for the user to run |
The plugin ships a bundled registry snapshot, so it keeps working offline.
The plugin also mounts a full in-harness storefront at
http://localhost:<dsh-web-port>/dsh-subscribe/ — browse/search the registry,
then install, uninstall, update, and approve build scripts with one click,
right from the browser. Every button drives the real dsh CLI on your machine;
mutating requests require a same-origin POST and installs are restricted to
curated registry specs (or explicit file:/link: specs).
HTTP API (same-origin):
| Route | Method | Purpose |
|---|---|---|
/dsh-subscribe/registry |
GET | registry + stats |
/dsh-subscribe/installed |
GET | installed plugins |
/dsh-subscribe/status |
GET | live install progress |
/dsh-subscribe/updates |
GET | update availability |
/dsh-subscribe/logs |
GET | sanitized plain-text log export |
/dsh-subscribe/install |
POST | one-click install (curated or file:/link:) |
/dsh-subscribe/uninstall |
POST | one-click uninstall |
/dsh-subscribe/update |
POST | one-click update |
/dsh-subscribe/approve-builds |
POST | allow build scripts for installed packages |
/dsh-subscribe/cancel |
POST | cancel the running operation |
/dsh-subscribe/ |
GET | in-harness storefront UI |
Build it locally with cd plugin && pnpm install && pnpm pack, then
dsh plugin --profile web add ./dsh-subscribe-0.3.1.tgz.
registry.json is the source of truth for the storefront, the CLI and the
plugin.
verified: true means zoahdev audited the plugin: CI, release/tag,
install path, and a runtime smoke test were all exercised. That is a real
but limited guarantee — it is not a security audit.verified: false). Check the source before trusting any
third-party plugin: listing ≠ endorsement.To refresh the community snapshot and rebuild the merged registry:
curl -sf https://awesome-dsh-plugin.com/plugins.json -o data/registry-snapshot.json
node scripts/build-registry.mjs
node scripts/check-registry.mjs
dsh plugin add github:... can fail with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED
or Ignored build scripts. This is pnpm's default safety gate, not a plugin
bug. Fix:
pnpm-workspace.yaml (inside ~/.dsh/profiles/web/
by default) and add the key to allowBuilds.sync (or the install command).The CLI detects this failure mode and prints the same hint automatically.
The page fetches registry.json from raw.githubusercontent.com, which can
cache for a few minutes after a push. Hard-refresh (Ctrl/Cmd+Shift+R) or wait,
then reload.
market_search returns fewer results than expectedThe plugin tries the live registry first and falls back to the bundled snapshot when offline. If you are offline the snapshot is used, which may be a few hours behind the storefront. Re-run later or use the web storefront.
CLI: Node ≥ 18. Plugin: Node ≥ 20 (uses AbortSignal.any for bounded fetches).
The CI pipeline is intentionally strict — it does not stop at "the plugin loads":
node scripts/check-registry.mjs — structural registry contract (unique
ids/specs, verified entries declare versions, valid install specs).node --test tests/cli.test.mjs — CLI end-to-end: subscribe → sync
--dry-run, merged registry >= 500 plugins.node --test test/plugin.test.mjs — pure search/stats/command logic plus
offline fallback.pnpm pack + scripts/runtime-smoke.mjs — the packed tarball is
installed into a fresh project, the bundle is loaded through the real
apply()/ctx.tools.register path, and all three handlers are executed
and asserted (not just imported).scripts/dsh-smoke.ps1 — installs the packed tarball into a fresh DSH
profile, verifies dsh-subscribe appears in --dump-config, and boots
dsh web until HTTP 200 (bounded 30s retry, background process cleaned up).This validates: manifest/package validity, dependency compatibility, bundle loadability, DSH boot, and actual tool callability. This is a community project — not an official DeepSeek template, and nothing here is security-audited.
dsh-market is an excellent visual market inside
the DSH web UI (browse → one-click install → themes → updates). dsh-subscribe
is a complementary take, not a replacement:
| dsh-subscribe | dsh-market | |
|---|---|---|
| Registry size | 571+ (awesome-dsh-plugin mirror + verified curation) | 300+ (awesome-dsh-plugin live) |
| One-click install inside web UI | — (copy command / CLI sync) | ✅ |
| Steam-style subscription workflow | ✅ | — |
| In-chat agent tools (search/stats/commands) | ✅ | — |
| Zero-dependency CLI | ✅ | — |
| Offline registry snapshot | ✅ (plugin) | ✅ (bundled snapshot) |
| Themes/updates UI | — | ✅ |
| Same-origin install guard, build-approval UX | — | ✅ |
Use both: browse and install visually with dsh-market; subscribe, sync and let your agent find plugins with dsh-subscribe.
verified? Open an issue with your repo, CI badge,
release tag, and install path; after a real audit it gets the badge.MIT — dsh-subscribe · storefront
dsh-subscribe —— DeepSeek Harness 的 Steam 式插件市场:在网页商店浏览 571+ 社区插件、一键订阅,然后一条命令把全部订阅装进你的 dsh profile。自带零依赖 CLI 和 in-harness 插件(对话里直接搜索/统计/生成安装命令)。
subscriptions.json(每个插件卡片也有「复制安装命令」);git clone https://github.com/zoahdev/dsh-subscribe
cd dsh-subscribe
# 把导出的 subscriptions.json 放在这里
node scripts/dsh-subscribe.mjs sync --profile web
node scripts/dsh-subscribe.mjs list [query] # 列出/搜索插件
node scripts/dsh-subscribe.mjs subscribe <id> # 添加订阅
node scripts/dsh-subscribe.mjs unsubscribe <id> # 取消订阅
node scripts/dsh-subscribe.mjs status # 订阅 vs 已安装
node scripts/dsh-subscribe.mjs install <id> # 立即安装单个插件
node scripts/dsh-subscribe.mjs sync [--profile web] # 安装全部订阅
node scripts/dsh-subscribe.mjs sync --dry-run # 只预览不安装
CLI 零运行时依赖(Node ≥ 18),底层调用真实的
pnpm dlx @deepseek-ai/dsh plugin --profile <p> add <spec>。
dsh plugin --profile web add github:zoahdev/dsh-subscribe#path:/plugin
重启 dsh web 后,agent 可以直接调用 market_search(搜索)、
market_stats(统计)、market_install_command(生成安装命令,需用户确认后
在终端执行)。插件内置注册表快照,离线也能用。
verified: true = zoahdev 审计过(CI/发布/安装路径/运行时冒烟都实测过)。
这是真实但有限的保证,不是安全审计。其余条目来自
awesome-dsh-plugin.com,仅作发现用途;
「列出一项 ≠ 背书」。
dsh plugin add github:... 报
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 时,按 pnpm 打印的包名,在 profile
的 pnpm-workspace.yaml 的 allowBuilds 里加一行,再重跑 sync。CLI 会
自动提示这个修复。不只是「插件能加载」:注册表结构校验 → CLI 端到端(订阅→dry-run 同步)→
插件单元测试 → 打包产物安装到全新工程、真实注册工具、真实执行三个
handler 并断言 → 装进全新 DSH profile、--dump-config 验证、dsh web
启动到 HTTP 200(30 秒有界重试)。社区项目,非官方模板,无安全审计。
互补而非替代:dsh-market 在 Web UI 里做可视化一键安装/主题/更新; dsh-subscribe 提供 Steam 式订阅同步、零依赖 CLI、对话内 agent 工具和 571+ 全量注册表。两个一起用体验最佳。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: marketplace。