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

插件市场 vvlife/whalehub-dsh

DeepSeek Harness
vvlife13 天前有提交已提供中文文档扫描:含敏感能力

WhaleHub 🐋 — DeepSeek Harness 插件市场:发现、搜索、一键安装 DSH 社区插件

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

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add vvlife/whalehub-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

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

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

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✗npm 包whalehub-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 12:54:49

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

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 36 处,展示前 36 条)
  • 写入本地文件
    scripts/prepare-public.mjs:9
    mkdirSync(join(ROOT, 'public'), { recursive: true })
  • 写入本地文件
    scripts/prepare-public.mjs:14
    copyFileSync(join(ROOT, 'registry', src), join(ROOT, 'public', dest))
  • 发起网络请求
    plugin/lib/client-registry.js:11
    const res = await fetch(`/whalehub/api/${method}`, {
  • 写入剪贴板
    plugin/lib/client-registry.js:62
    if (navigator.clipboard?.writeText) navigator.clipboard.writeText(text).catch(() => void 0);
  • 发起网络请求
    plugin/lib/client-registry.js:242
    if ((await fetch("/", {
  • 发起网络请求
    plugin/lib/client.js:11
    const res = await fetch(`/whalehub/api/${method}`, {
  • 写入剪贴板
    plugin/lib/client.js:62
    if (navigator.clipboard?.writeText) navigator.clipboard.writeText(text).catch(() => void 0);
  • 发起网络请求
    plugin/lib/client.js:242
    if ((await fetch("/", {
  • 执行外部命令来自配置/变量
    plugin/lib/index.js:1475
    spawn(process.execPath, ["-e", script], {
  • 执行外部命令来自配置/变量
    plugin/lib/index.js:1489
    child = spawn(invocation.command, invocation.args, { env: process.env });
  • 执行外部命令来自配置/变量
    plugin/src/index.ts:130
    const child = spawn(process.execPath, ['-e', script], {
  • 执行外部命令来自配置/变量
    plugin/src/index.ts:145
    child = spawn(invocation.command, invocation.args, { env: process.env })
  • 写入本地文件
    scripts/e2e-desktop.mjs:8
    mkdirSync(OUT, { recursive: true })
  • 写入本地文件
    scripts/e2e-install-restart.mjs:9
    mkdirSync(OUT, { recursive: true })
  • 发起网络请求
    scripts/e2e-install-restart.mjs:79
    const alive = await page.evaluate(() => fetch('/', { method: 'HEAD' }).then((r) => r.ok).catch(() => false))
  • 读取密钥环境变量
    scripts/process-issues.mjs:39
    const GH_TOKEN = process.env.GH_TOKEN || process.env.GITHUB_TOKEN
  • 执行外部命令固定命令
    scripts/process-issues.mjs:67
    return execFileSync('gh', arr, {
  • 读取本地文件
    scripts/process-issues.mjs:161
    try { return JSON.parse(readFileSync(SUB_FILE, 'utf8')) } catch { return [] }
  • 写入本地文件
    scripts/process-issues.mjs:164
    writeFileSync(SUB_FILE, JSON.stringify(arr, null, 2) + '\n', 'utf8')
  • 写入本地文件
    scripts/process-issues.mjs:168
    writeFileSync(f, body, 'utf8')
  • 写入本地文件
    scripts/screenshot.mjs:30
    mkdirSync(OUT, { recursive: true })
  • 读取密钥环境变量
    scripts/sync-registry.mjs:334
    if (process.env.GH_TOKEN) return process.env.GH_TOKEN
  • 执行外部命令固定命令
    scripts/sync-registry.mjs:335
    try { return execSync('gh auth token', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim() }
  • 请求外部主机api.github.com
    scripts/sync-registry.mjs:345
    const res = await fetch(`https://api.github.com/repos/${fullName}`, { headers })
  • 发起网络请求
    scripts/sync-registry.mjs:345
    const res = await fetch(`https://api.github.com/repos/${fullName}`, { headers })
  • 发起网络请求
    scripts/sync-registry.mjs:358
    const md = await (await fetch(AWESOME_URL)).text()
  • 读取本地文件
    scripts/sync-registry.mjs:362
    try { issueSubs = JSON.parse(readFileSync(join(ROOT, 'scripts', 'issue-submissions.json'), 'utf8')) } catch {}
  • 读取本地文件
    scripts/sync-registry.mjs:379
    try { prev = JSON.parse(readFileSync(OUT, 'utf8')).plugins } catch {}
  • 写入本地文件
    scripts/sync-registry.mjs:437
    mkdirSync(dirname(OUT), { recursive: true })
  • 写入本地文件
    scripts/sync-registry.mjs:438
    writeFileSync(OUT, JSON.stringify(registry, null, 2) + '\n')
  • 写入本地文件
    scripts/sync-registry.mjs:441
    mkdirSync(dirname(pluginSnapshot), { recursive: true })
  • 写入本地文件
    scripts/sync-registry.mjs:442
    writeFileSync(pluginSnapshot, JSON.stringify(registry, null, 2) + '\n')
  • 读取本地文件
    scripts/validate-plugins.mjs:27
    const registry = JSON.parse(readFileSync(REGISTRY, 'utf8'))
  • 发起网络请求
    scripts/verify-plugin.mjs:47
    const res = await fetch(url, { signal, headers: { 'User-Agent': 'whalehub-verify', ...headers } })
  • 读取密钥环境变量
    scripts/verify-plugin.mjs:63
    return process.env.GH_TOKEN || null
  • 写入剪贴板
    src/lib/router.ts:29
    navigator.clipboard.writeText(text).then(done).catch(() => fallbackCopy(text, done))
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.github.com

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图

功能亮点

  • 发现社区插件
  • 搜索插件
  • 一键安装插件

README

由 DeepSeek 最新模型翻译生成
🐋 WhaleHub DeepSeek Harness 的社区插件市场 —— 发现、搜索、一键安装,不用再到处翻仓库。 CI Registry sync Plugins License: MIT 🌐 在线访问 WhaleHub(国内备用镜像:GitHub Pages) · 提交插件 · PRD 为什么做 WhaleHub? DeepSeek Harness (DSH) 的信条是 “一切皆插件”。发布一天之内社区就涌出了几十上百个插件——皮肤、TUI、视觉工具、工作流……但它们散落在各个 GitHub 仓库里:找到一个插件要搜半天,装对一个插件要翻半天 README。 WhaleHub 把整个生态聚到一个页面里:打开网站 → 搜索/浏览 → 复制一条 dsh plugin add 命令 → 粘贴进终端 → 重启,完成。 ✨ 功能一览 首页:精选 + 分类导航 + 全局搜索 首页 插件列表:搜索 / 分类筛选 / 排序 支持按名称、描述、作者、标签模糊搜索,按热度(Stars)、最近更新、名称排序。 插件列表 搜索 插件详情:一键安装面板 每个插件都有安装面板:选 Profile → 一键复制安装命令,同时提供 --dump-config 校验命令和 cordis.yml 配置片段;有坑点的插件附实测安装须知。
展开完整文档(README 剩余 1 节)
🐋 WhaleHub

DeepSeek Harness 的社区插件市场 —— 发现、搜索、一键安装,不用再到处翻仓库。

CI
Registry sync
Plugins
License: MIT

🌐 在线访问 WhaleHub(国内备用镜像:GitHub Pages) · 提交插件 · PRD

为什么做 WhaleHub?

DeepSeek Harness (DSH) 的信条是 “一切皆插件”。发布一天之内社区就涌出了几十上百个插件——皮肤、TUI、视觉工具、工作流……但它们散落在各个 GitHub 仓库里:找到一个插件要搜半天,装对一个插件要翻半天 README。

WhaleHub 把整个生态聚到一个页面里:打开网站 → 搜索/浏览 → 复制一条 dsh plugin add 命令 → 粘贴进终端 → 重启,完成。

✨ 功能一览

首页:精选 + 分类导航 + 全局搜索

首页

插件列表:搜索 / 分类筛选 / 排序

支持按名称、描述、作者、标签模糊搜索,按热度(Stars)、最近更新、名称排序。

插件列表

搜索

插件详情:一键安装面板

每个插件都有安装面板:选 Profile → 一键复制安装命令,同时提供 --dump-config 校验命令和 cordis.yml 配置片段;有坑点的插件附实测安装须知。

详情与一键安装

一键复制反馈

提交插件:Issue 表单 / PR 两种姿势

提交插件

移动端自适应

📦 更进一步:把 WhaleHub 装进 DSH Web

装上 whalehub-market 插件后,连“复制命令”都省了——DSH Web 的 Settings → Plugins 会多出「🐋 插件市场」Tab,浏览、搜索、点一下就装好(host 半直接执行 dsh plugin add,装完重启生效):

dsh plugin --profile web add "github:vvlife/whalehub-dsh#main&path:/plugin"
重启 dsh web → Settings → Plugins → 🐋 插件市场

DSH Web 内的 WhaleHub 市场

实现参考了官方 ui-settings-plugin-inventory(settings.plugins.tab slot 贡献)与 dsh-better-sidebar(双半包构建、ctx.webServer 路由、Host 头信任围栏)。详见 plugin/README.md。

💡 连 dsh 都还没装? 试试 DeepSeek Harness Desktop:自包含 macOS APP(内置 Node + dsh + Paseo),拖进「应用程序」即用,插件市场一条命令接入。宣传站:dsh-desktop.vercel.app

🚀 快速开始(用户)

1. 装好 DSH(dsh web 能打开 http://127.0.0.1:3080)
2. 打开 WhaleHub(国内可用 GitHub Pages 镜像),找到想要的插件
3. 点进详情页,选你的 Profile(一般是 web),点 一键复制
4. 粘贴进终端执行,例如:

dsh plugin --profile web add dsh-better-sidebar@0.10.2
dsh --profile web --dump-config # 验证挂载成功
重启 dsh web 生效

📮 提交插件(开发者)
- 提 Issue:用 提交插件表单,1 分钟搞定
- 提 PR:直接改 registry/plugins.json,CI 会自动校验 schema
- 也推荐给上游 awesome-deepseek-harness-plugins 提 PR,WhaleHub 每日自动同步

🏗️ 架构:零后端,Git 即数据库

awesome 列表 ──► scripts/sync-registry.mjs ──► registry/plugins.json ──► Vite 构建期内嵌 ──► 静态 SPA (Vercel) ▲ GitHub API 补充 stars/license/更新时间 └── GitHub Actions 每日 cron 自动同步 + 校验

- 前端:React 18 + TypeScript + Vite,手写 CSS,轻量 hash 路由
- 注册表:仓库内 JSON,PR 审核制,Git 历史即审计日志
- 同步:每日解析 awesome 列表 + GitHub API 补充元数据(workflow)
- 测试:Vitest,84 个用例覆盖注册表 schema、搜索/排序、安装命令生成、解析器

🛠️ 本地开发

npm install
npm run dev # 本地开发
npm test # 运行测试(含注册表 schema 校验)
npm run build # 类型检查 + 构建
npm run sync # 手动同步注册表(需 gh 登录或 GH_TOKEN)
BASE_URL=http://localhost:4173 npm run screenshot # 重新生成 README 截图

📄 License

MIT。各插件版权归其作者所有。WhaleHub 是社区项目,与 DeepSeek 官方无隶属关系。
预览分享卡片长什么样 ↓vvlife/whalehub-dsh
分享 · DeepSeek Harness Hub
vvlife/whalehub-dsh

WhaleHub 🐋 — DeepSeek Harness 插件市场:发现、搜索、一键安装 DSH 社区插件

这是你的仓库?认领条目

回到顶部