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

中文插件市场 YML0823/dsh-local-market

DeepSeek Harness
YML08236 天前有提交已提供中文文档扫描:高危

浏览中文插件目录,查看截图并一键安装

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add YML0823/dsh-local-market
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/10/30·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 6 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

命令参数由运行时变量拼接读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 49 处,展示前 43 条)
  • 发起网络请求
    plugin/index.js:47
    const response = await fetch(LIVE_URL, {
  • 执行外部命令固定命令
    plugin/index.js:154
    const result = spawnSync('where.exe', ['dsh'], { encoding: 'utf8', windowsHide: true, timeout: 8000 });
  • 执行外部命令运行时拼接
    plugin/index.js:170
    const result = spawnSync(`"${findDsh().replace(/"/g, '""')}" --version`, {
  • 发起网络请求
    plugin/index.js:262
    const response = await fetch(candidate, {
  • 执行外部命令来自配置/变量
    plugin/index.js:382
    const child = spawn(job.command, {
  • 执行外部命令固定命令
    plugin/index.js:404
    if (isWindows) spawnSync('taskkill', ['/pid', String(child.pid), '/t', '/f'], { windowsHide: true });
  • 执行外部命令固定命令
    plugin/index.js:706
    if (process.platform === 'win32') spawnSync('taskkill', ['/pid', String(job.child.pid), '/t', '/f'], { windowsHide: true });
  • 读取本地文件
    plugin/lib/catalog.cjs:15
    const pkg = JSON.parse(fs.readFileSync(path.join(profileDir, 'package.json'), 'utf8'));
  • 读取本地文件
    plugin/lib/catalog.cjs:25
    for (const entry of fs.readdirSync(modules, { withFileTypes: true })) {
  • 读取本地文件
    plugin/lib/catalog.cjs:28
    for (const child of fs.readdirSync(path.join(modules, entry.name), { withFileTypes: true })) {
  • 读取本地文件
    plugin/lib/catalog.cjs:37
    const pkg = JSON.parse(fs.readFileSync(path.join(modules, name, 'package.json'), 'utf8'));
  • 读取本地文件
    lib/catalog.js:15
    const pkg = JSON.parse(fs.readFileSync(path.join(profileDir, 'package.json'), 'utf8'));
  • 读取本地文件
    lib/catalog.js:25
    for (const entry of fs.readdirSync(modules, { withFileTypes: true })) {
  • 读取本地文件
    lib/catalog.js:28
    for (const child of fs.readdirSync(path.join(modules, entry.name), { withFileTypes: true })) {
  • 读取本地文件
    lib/catalog.js:37
    const pkg = JSON.parse(fs.readFileSync(path.join(modules, name, 'package.json'), 'utf8'));
  • 写入剪贴板
    plugin/ui/app.js:129
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    plugin/ui/app.js:224
    const response = await fetch(appUrl('api/installed'), { headers: { Accept: 'application/json' } });
  • 发起网络请求
    plugin/ui/app.js:287
    const response = await fetch(appUrl(`api/catalog${force ? '?refresh=1' : ''}`), {
  • 发起网络请求
    plugin/ui/app.js:296
    const response = await fetch('data/plugins.json', { headers: { Accept: 'application/json' } });
  • 发起网络请求
    plugin/ui/app.js:331
    const featuredResponse = await fetch('data/featured.json');
  • 发起网络请求
    plugin/ui/app.js:349
    const response = await fetch(appUrl('api/config'), { headers: { Accept: 'application/json' } });
  • 发起网络请求
    plugin/ui/app.js:1057
    const response = await fetch(appUrl('api/install'), {
  • 写入剪贴板
    public/app.js:129
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    public/app.js:224
    const response = await fetch(appUrl('api/installed'), { headers: { Accept: 'application/json' } });
  • 发起网络请求
    public/app.js:287
    const response = await fetch(appUrl(`api/catalog${force ? '?refresh=1' : ''}`), {
  • 发起网络请求
    public/app.js:296
    const response = await fetch('data/plugins.json', { headers: { Accept: 'application/json' } });
  • 发起网络请求
    public/app.js:331
    const featuredResponse = await fetch('data/featured.json');
  • 发起网络请求
    public/app.js:349
    const response = await fetch(appUrl('api/config'), { headers: { Accept: 'application/json' } });
  • 发起网络请求
    public/app.js:1057
    const response = await fetch(appUrl('api/install'), {
  • 写入本地文件
    server.js:34
    fs.mkdirSync(IMAGE_CACHE, { recursive: true });
  • 读取本地文件
    server.js:39
    let catalog = { ...JSON.parse(fs.readFileSync(DATA_FILE, 'utf8')), featured: FEATURED };
  • 发起网络请求
    server.js:49
    const response = await fetch(LIVE_URL, {
  • 读取本地文件
    server.js:103
    if (process.env.DSH_BIN && fs.existsSync(process.env.DSH_BIN)) return process.env.DSH_BIN;
  • 执行外部命令固定命令
    server.js:105
    const result = spawnSync('where.exe', ['dsh'], { encoding: 'utf8', windowsHide: true, timeout: 8000 });
  • 读取本地文件
    server.js:111
    if (cmd && fs.existsSync(cmd)) return cmd;
  • 读取本地文件
    server.js:120
    for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
  • 读取本地文件
    server.js:126
    pkg = JSON.parse(fs.readFileSync(pkgFile, 'utf8'));
  • 执行外部命令运行时拼接
    server.js:161
    const versionResult = spawnSync(`"${DSH_BIN.replace(/"/g, '""')}" --version`, {
  • 发起网络请求
    server.js:263
    const response = await fetch(candidate, {
  • 执行外部命令来自配置/变量
    server.js:384
    const child = spawn(job.command, {
  • 读取本地文件
    server.js:385
    cwd: profileDir && fs.existsSync(profileDir) ? profileDir : ROOT,
  • 执行外部命令固定命令
    server.js:411
    if (isWindows) spawnSync('taskkill', ['/pid', String(child.pid), '/t', '/f'], { windowsHide: true });
  • 执行外部命令固定命令
    server.js:712
    if (job?.child?.pid) spawnSync('taskkill', ['/pid', String(job.child.pid), '/t', '/f'], { windowsHide: true });
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 中文插件市场:实时社区目录、中文检索、界面预览与一键安装

README

由 DeepSeek 最新模型翻译生成
DSH Local Market · 中文插件市场 一个中文插件市场,给 DeepSeek Harness 用:从 GitHub dsh-plugin 社区目录读取插件,支持中文检索、分类筛选、界面截图和一键安装。 你可以把它作为 DSH 插件直接打开,也可以作为独立网页运行。 首页预览 功能 - 实时目录:运行时从 awesome-dsh-plugin 拉取最新目录,每 10 分钟自动同步;顶栏「同步」按钮可手动刷新 - 中文检索:按插件名、作者、中文说明、分类和能力搜索,支持中英文关键词 - 分类筛选:23 个能力分类,支持「有界面图 / npm / GitHub / 已安装」快速筛选与排序 - 界面预览:展示作者提供的真实截图;没有截图的插件使用分类插画封面,详情页支持多图放大 - 一键安装:调用本机 dsh plugin --profile <profile> add <spec>,实时显示 pnpm 日志 - 安装前检查:作者、仓库、npm 包、版本、权限声明、第三方代码提示 - 已安装状态:读取当前 DSH profile 的真实依赖与组合包;在 DSH 里从别处安装的插件,也会在约 5 秒内同步到「已安装」 - 响应式:桌面、平板、手机均可使用 检索与筛选 作为 DSH 插件安装 从 GitHub 安装
展开完整文档(README 剩余 1 节)
DSH Local Market · 中文插件市场

一个中文插件市场,给 DeepSeek Harness 用:从 GitHub dsh-plugin 社区目录读取插件,支持中文检索、分类筛选、界面截图和一键安装。

你可以把它作为 DSH 插件直接打开,也可以作为独立网页运行。

首页预览

功能

- 实时目录:运行时从 awesome-dsh-plugin 拉取最新目录,每 10 分钟自动同步;顶栏「同步」按钮可手动刷新
- 中文检索:按插件名、作者、中文说明、分类和能力搜索,支持中英文关键词
- 分类筛选:23 个能力分类,支持「有界面图 / npm / GitHub / 已安装」快速筛选与排序
- 界面预览:展示作者提供的真实截图;没有截图的插件使用分类插画封面,详情页支持多图放大
- 一键安装:调用本机 dsh plugin --profile <profile> add <spec>,实时显示 pnpm 日志
- 安装前检查:作者、仓库、npm 包、版本、权限声明、第三方代码提示
- 已安装状态:读取当前 DSH profile 的真实依赖与组合包;在 DSH 里从别处安装的插件,也会在约 5 秒内同步到「已安装」
- 响应式:桌面、平板、手机均可使用

检索与筛选

作为 DSH 插件安装

从 GitHub 安装

dsh plugin --profile <profile> add github:YML0823/dsh-local-market

把 <profile> 换成你的 DSH profile(例如 web 或 desktop)。

安装后重启一次 DSH(或按 DSH 的提示重载),打开左侧 插件,顶部会出现 「中文市场」 Tab:

已安装 中文市场 插件市场 发现

点击 中文市场 即可使用。在 已安装 列表里也能看到 dsh-local-market 本体并启停。

如果你同时装了社区市场 dshmarket,它的 Tab 叫「插件市场」;本项目特意叫「中文市场」,避免两个同名入口混淆。

从本地 tarball 安装

dsh plugin --profile web add "file:F:/path/to/dsh-local-market-1.0.3.tgz"

已发布版本可直接下载:GitHub Releases · v1.0.3

构建 tarball:

node scripts/build-plugin.js

产物输出到 dist/dsh-local-market-1.0.3.tgz。

插件结构

1. Host 插件 plugin/index.js:在 DSH 的 webServer 上挂载 /dsh-local-market/,提供静态页面、实时目录 API、截图代理和安装 API
2. Client 插件 plugin/client.js:向 plugins.tab 注册「中文市场」Tab,用 iframe 打开市场页面

插件运行时会自己读取当前机器的 DSH_HOME、profile 和 dsh CLI,不包含作者机器上的路径或账号信息。

独立网页版

需要 Node.js 20+,无需安装 npm 依赖。

cd dsh-plugin-market
node server.js

打开:

http://127.0.0.1:7788

Windows 也可以双击 start.cmd。

独立版和 DSH 插件版使用同一套 UI、目录和安装 API,区别只是入口不同。

实时目录

页面加载时,Host 会请求:

https://awesome-dsh-plugin.com/plugins.json

将上游目录规范化后返回给前端;成功同步后统计数字和「目录更新」日期会自动变化。

- 缓存 10 分钟,避免每次打开都重新下载
- 顶栏 同步 按钮可强制刷新
- 网络不可用时自动回退到仓库内的快照 public/data/plugins.json
- 上游目录包含插件中文说明、截图、安装参数、Star 和下载量

如果上游域名不可访问,可以在启动独立版时设置镜像:

$env:CATALOG_LIVE_URL="https://your-mirror.example/plugins.json"
node server.js

DSH 插件版会使用代码中的默认上游地址;需要镜像时可修改 plugin/index.js 里的 LIVE_URL。

安装是怎么工作的

市场本身不托管插件。条目里的安装参数来自社区目录,例如:

dsh plugin --profile web add dsh-meme
dsh plugin --profile web add github:owner/repo
dsh plugin --profile web add "https://github.com/.../release.tgz"

点击安装后,Host 会:

1. 按条目 id 在当前目录中查出精确的安装 spec,不接受任意用户输入;
2. 校验 profile 名称和 spec 格式;
3. 以当前用户权限运行本机 dsh CLI;
4. 通过 SSE 把 stdout/stderr 实时推回页面;
5. 成功后把条目记入「已安装」。

Desktop 用户注意

DSH Desktop 的 desktop profile 由桌面应用管理。命令行安装可能被拒绝,或者安装后不出现。遇到这种情况:

- 优先使用 DSH 的 设置 → 插件 安装;
- 或把 profile 选为 web,供 dsh web / 命令行版使用。

安装完成后通常需要刷新页面,部分插件需要重启 DSH。

开发

生成离线快照(从目录源)
node scripts/build-data.js

构建 DSH 插件 tarball
node scripts/build-plugin.js

启动独立版
node server.js

scripts/build-data.js 默认读取 vendor/plugins.json,也可通过 CATALOG_SOURCE 指定其他路径。运行时不需要重新生成快照,Host 会自动拉取最新目录。

目录结构

.
├─ plugin/ # DSH 插件源码 │ ├─ index.js # Host:HTTP 路由、实时目录、安装 API │ ├─ client.js # Client:plugins.tab 注册 │ ├─ ui/ # 随插件分发的市场页面 │ └─ lib/catalog.cjs # 目录规范化(构建时复制) ├─ lib/catalog.js # 共享目录规范化模块 ├─ server.js # 独立版服务 ├─ public/ # 独立版页面与快照 ├─ scripts/ │ ├─ build-data.js │ └─ build-plugin.js ├─ start.cmd └─ dist/ # 构建产物(不提交)

安全与隐私

- 插件是第三方代码,会以你的本机权限运行;市场只做索引和调用,不做安全审计。
- 安装前请打开 GitHub 仓库确认作者、来源和权限声明。
- 安装接口只接受目录中存在的条目,spec 与 profile 都会校验;独立版默认只监听 127.0.0.1。
- 项目源码不包含作者主机的绝对路径、账号、profile 目录或凭据;运行时信息由用户自己的 DSH 环境提供。
- 截图通过本地 /api/image 代理获取并按 URL 缓存,浏览器不会直接访问截图主机。

数据与致谢

- 插件主题:github.com/topics/dsh-plugin
- 社区目录:awesome-dsh-plugin.com
- 运行宿主:DeepSeek Harness

本项目是独立的社区目录界面,不是 DeepSeek 官方商店。

插件列表

手机端

插件详情
预览分享卡片长什么样 ↓YML0823/dsh-local-market
分享 · DeepSeek Harness Hub
YML0823/dsh-local-market

浏览中文插件目录,查看截图并一键安装

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部