🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件市场 TheYoungChen/dsh-plugin-market

DeepSeek Harnessv1.3.0
TheYoungChen1 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 插件市场:浏览、搜索、安装 dsh-plugin 主题插件(dsh 插件市场:浏览/搜索/安装插件)

32.9/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:npm 同名包「dsh-plugin-market」归属 veloce-ailab/dsh-plugin-market,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TheYoungChen/dsh-plugin-market
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-plugin-market」归属 veloce-ailab/dsh-plugin-market,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-plugin-market @ 1.3.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 12:40:31

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 40 处,展示前 38 条)
  • 读取本地文件
    lib/index.mjs:28
    return JSON.parse(readFileSync(join(profileWebDir(), "package.json"), "utf8"));
  • 写入本地文件
    lib/index.mjs:34
    writeFileSync(join(profileWebDir(), "package.json"), `${JSON.stringify(manifest, void 0, 2)}\n`);
  • 读取本地文件
    lib/index.mjs:39
    return JSON.parse(readFileSync(join(profileWebDir(), "node_modules", packageName, "package.json"), "utf8")).dsh?.bundle?.patch !== void 0;
  • 读取本地文件
    lib/index.mjs:82
    const pkg = JSON.parse(readFileSync(join(profileWebDir(), "node_modules", name, "package.json"), "utf8"));
  • 删除本地文件
    lib/index.mjs:136
    rmSync(join(profileWebDir(), "node_modules", name), {
  • 删除本地文件
    lib/index.mjs:143
    rmSync(target, {
  • 执行外部命令来自配置/变量
    lib/index.mjs:163
    const child = spawn(step.argv[0], step.argv.slice(1), {
  • 写入本地文件
    lib/index.mjs:250
    mkdirSync(skillsDir, { recursive: true });
  • 写入本地文件
    lib/index.mjs:264
    mkdirSync(presetsDir, { recursive: true });
  • 写入本地文件
    lib/index.mjs:278
    mkdirSync(cacheDir, { recursive: true });
  • 读取本地文件
    lib/index.mjs:388
    repo = normalizeRepo(JSON.parse(readFileSync(join(profileWebDir(), "node_modules", "dsh-plugin-market", "package.json"), "utf8")).repository);
  • 执行外部命令固定命令
    lib/index.mjs:416
    spawn("taskkill", [
  • 发起网络请求
    lib/index.js:23
    const payload = await (await fetch("/api/plugin-market/self")).json();
  • 发起网络请求
    lib/index.js:53
    return await fetch(url, {
  • 发起网络请求
    lib/index.js:219
    const response = await fetch("/api/plugin-market/install", {
  • 发起网络请求
    lib/index.js:233
    const response = await fetch(`/api/plugin-market/job/${encodeURIComponent(jobId)}`);
  • 发起网络请求
    lib/index.js:240
    const response = await fetch(`/api/plugin-market/job/${encodeURIComponent(jobId)}/cancel`, { method: "POST" });
  • 发起网络请求
    lib/index.js:252
    const response = await fetch("/api/plugin-market/installed");
  • 发起网络请求
    src/client/api.ts:18
    const response = await fetch('/api/plugin-market/install', {
  • 发起网络请求
    src/client/api.ts:32
    const response = await fetch(`/api/plugin-market/job/${encodeURIComponent(jobId)}`)
  • 发起网络请求
    src/client/api.ts:42
    const response = await fetch(`/api/plugin-market/job/${encodeURIComponent(jobId)}/cancel`, {
  • 发起网络请求
    src/client/api.ts:78
    const response = await fetch('/api/plugin-market/installed')
  • 发起网络请求
    src/client/api.ts:95
    const response = await fetch('/api/plugin-market/cleanup', {
  • 发起网络请求
    src/client/api.ts:108
    const response = await fetch('/api/plugin-market/uninstall', {
  • 发起网络请求
    src/client/github.ts:51
    const response = await fetch('/api/plugin-market/self')
  • 发起网络请求
    src/client/github.ts:95
    return await fetch(url, { cache: 'no-store', signal: controller.signal })
  • 读取本地文件
    src/index.ts:36
    return JSON.parse(readFileSync(join(profileWebDir(), 'package.json'), 'utf8')) as ProfileManifest
  • 写入本地文件
    src/index.ts:43
    writeFileSync(join(profileWebDir(), 'package.json'), `${JSON.stringify(manifest, undefined, 2)}\n`)
  • 读取本地文件
    src/index.ts:49
    const manifest = JSON.parse(readFileSync(
  • 读取本地文件
    src/index.ts:107
    const pkg = JSON.parse(readFileSync(
  • 删除本地文件递归
    src/index.ts:156
    rmSync(join(profileWebDir(), 'node_modules', name), { recursive: true, force: true })
  • 删除本地文件递归
    src/index.ts:169
    rmSync(target, { recursive: true, force: true })
  • 执行外部命令来自配置/变量
    src/index.ts:199
    const child = spawn(step.argv[0]!, step.argv.slice(1), {
  • 写入本地文件
    src/index.ts:302
    mkdirSync(skillsDir, { recursive: true })
  • 写入本地文件
    src/index.ts:306
    mkdirSync(presetsDir, { recursive: true })
  • 写入本地文件
    src/index.ts:310
    mkdirSync(cacheDir, { recursive: true })
  • 读取本地文件
    src/index.ts:380
    const pkg = JSON.parse(readFileSync(
  • 执行外部命令固定命令
    src/index.ts:408
    spawn('taskkill', ['/pid', String(job.child.pid), '/T', '/F'], { stdio: 'ignore' })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-api-remotes
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 浏览插件
  • 搜索插件
  • 安装插件

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-market 一个 DeepSeek Harness(dsh)插件市场 bundle 插件:在 Web UI 左侧「设置」上方新增「插件市场」入口(同时集成到 设置 → 插件 → 插件市场 标签页),分页浏览 GitHub dsh-plugin topic 里的全部插件,支持搜索、一键安装与实时进度。 GitHub Stars License Last Commit Repo Size 📸 截图 插件市场弹窗 设置 → 插件 → 插件市场 安装进度(可终止 / 后台下载) ⚡ 一键安装(复制即用) 喂给 AI 的一句话(AI 具备命令执行能力即可,无需解释): 安装 dsh-plugin-market:运行 dsh plugin --profile web add github:TheYoungChen/dsh-plugin-market,然后重启 dsh web。 或者直接复制命令: dsh plugin --profile web add github:TheYoungChen/dsh-plugin-market && dsh web 本插件无 prepare 构建脚本、lib/ 已预编译,git 安装零额外构建;安装完成后重启 dsh 生效。
展开完整文档(README 剩余 1 节)
dsh-plugin-market

一个 DeepSeek Harness(dsh)插件市场 bundle 插件:在 Web UI 左侧「设置」上方新增「插件市场」入口(同时集成到 设置 → 插件 → 插件市场 标签页),分页浏览 GitHub dsh-plugin topic 里的全部插件,支持搜索、一键安装与实时进度。

GitHub Stars
License
Last Commit
Repo Size

📸 截图

插件市场弹窗

设置 → 插件 → 插件市场

安装进度(可终止 / 后台下载)

⚡ 一键安装(复制即用)

喂给 AI 的一句话(AI 具备命令执行能力即可,无需解释):

安装 dsh-plugin-market:运行 dsh plugin --profile web add github:TheYoungChen/dsh-plugin-market,然后重启 dsh web。

或者直接复制命令:

dsh plugin --profile web add github:TheYoungChen/dsh-plugin-market && dsh web

本插件无 prepare 构建脚本、lib/ 已预编译,git 安装零额外构建;安装完成后重启 dsh 生效。

功能

- 双入口:侧边栏「设置」上方的入口按钮;设置 → 插件 → 插件市场 标签页,内容一致
- 浏览 / 搜索 / 分页:聚合 dsh-plugin topic 全部插件,按 star 排序,关键字搜索,每页 20 条,带「刷新」按钮
- 静态索引 + CDN:数据优先来自 GitHub Action 每 2 小时生成的 registry.json(jsDelivr CDN 分发,国内快),终端零 API 调用、零限流;索引不可用时自动回退搜索 API
- 已安装识别 + 更新:读 profile 真实依赖 + repository 归属校验,已装的插件置顶;自动对比最新版本,有新版显示「更新」按钮,一键覆盖升级
- 一键安装:确认框 → 真实执行 pnpm add github:(等价于官方 dsh plugin add),自动把声明 dsh.bundle 的依赖 reconcile 进 dsh.profile.bundles 层栈
- 安装可视化:实时日志 + 已用时长,可随时终止(真正杀掉进程)或转后台下载
- 后台通知:右上角常驻状态条(不遮挡会话页头),运行中可终止、可点击展开为终端面板看实时日志;完成后带「立即重启」按钮,手动关闭
- 统计与指引:插件总数统计、「如何发布插件」引导链接

安装类型

市场按仓库根文件自动识别类型并打上徽章,安装时走对应方式:

| 类型 | 判定 | 安装方式 |
| 插件 | 根目录含 package.json | pnpm add 进 profile(官方路径) |
| Skill | 根目录含 SKILL.md | 克隆到 ~/.dsh/skills// |
| 预设 | preset.yml / agent.cordis.yml | 克隆到 ~/.dsh/.agent-presets// |
| 脚本 | install.sh / install.ps1 | 克隆后执行安装脚本(需确认信任) |

工作原理

- node half(src/index.ts):在宿主注册同源路由 /api/plugin-market/*。安装时在 $DSH_HOME/profiles/web 里 spawn pnpm add github:,并把声明 dsh.bundle 的依赖 reconcile 进 dsh.profile.bundles 层栈;进度通过轮询 GET /api/plugin-market/job/ 返回,POST /api/plugin-market/job//cancel 可终止进程树。
- client half(src/client/):注册 sidebar.footer.action 与 settings.plugins.tab 槽位;MarketBrowser 是共享的浏览/安装组件,installStore 管理前后台安装任务,后台任务以右上角 toast 呈现。

两者都只用官方机制(bundle 层栈 + 用户 patch 层 + webServer 路由),不改官方仓库、不依赖私有内部包。

安装行为与注意事项

- 安装源固定为 github:,装进 web profile,重启 dsh 后生效(bundle 插件进层栈,配置在启动时解析)。
- git 托管的插件若带构建脚本(prepare),pnpm ≥10 默认拦截:进度里报 allowBuilds 时,按提示把对应 key 加进 ~/.dsh/profiles/web/pnpm-workspace.yaml 再重装。
- 安装第三方插件前请自查其源码、权限与许可证;本市场只提供发现与安装入口,不做安全背书。

从源码改/重建

cd dsh-plugin-market
pnpm install # 装 tsdown / react / @types/react 等 devDepsmarkdown
pnpm build # 产出 lib/index.mjs + lib/index.js

tsdown.config.ts 是自包含的(不引用官方 monorepo preset):node half 走 ESM、client half 走 window.__ModuleLoader__.load 的 CJS 包裹。

结构

cordis.patch.yml # insert 一行:挂载本包(ui-plugin-market) package.json # dsh.bundle + dsh.client manifest tsdown.config.ts # 自包含构建(node ESM + client CJS) src/index.ts # node half:/api/plugin-market 安装/进度/取消路由 src/client/index.ts # client half:注册 sidebar.footer.action + settings.plugins.tab src/client/PluginMarketPanel.tsx # 侧边栏入口 + 市场弹窗 + 后台安装 toast src/client/MarketBrowser.tsx # 共享浏览组件(搜索/分页/确认/进度弹窗) src/client/MarketSettingsTab.tsx # 设置页标签页包装 src/client/installStore.ts # 前后台安装任务状态管理 src/client/github.ts # GitHub dsh-plugin topic 拉取 src/client/api.ts # 安装 + 进度轮询 + 取消 src/client/locales.ts # 中英文案

已知限制

- 静态索引每 2 小时由 CI 更新一次,新发布的插件最迟 2 小时进索引(可在仓库 Actions 里手动触发 update-registry)。
- 版本检测对已安装插件按需读取 GitHub package.json,受未鉴权速率限制(约 60 次/小时)。
- 安装进度为轮询式(~600ms 一次),非逐字节流式。

License

MIT — Copyright (c) 2025 TheYoungChen
预览分享卡片长什么样 ↓TheYoungChen/dsh-plugin-market
分享 · DeepSeek Harness Hub
TheYoungChen/dsh-plugin-market

DeepSeek Harness 插件市场:浏览、搜索、安装 dsh-plugin 主题插件(dsh 插件市场:浏览/搜索/安装插件)

这是你的仓库?认领条目

回到顶部