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

统一控制中心 ddtcorex/dsh-maestro-dashboard

DeepSeek Harnessv0.4.1
ddtcorex36 天前有提交已提供中文文档扫描:含敏感能力

Maestro Dashboard — 统一控制中心概览/插件/用量DSH 原生

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @ddtcorex/dsh-maestro-dashboard
npm 源 · @ddtcorex/dsh-maestro-dashboard 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
数据截至 2026/10/28·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 36 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包@ddtcorex/dsh-maestro-dashboard @ 0.4.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/5 09:46:37

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

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 112 处,展示前 62 条)
  • 写入剪贴板
    lib/client.js:492
    onClick: () => navigator.clipboard?.writeText(`https://${tunnel.hostname}`),
  • 写入剪贴板
    lib/client.js:511
    onClick: () => navigator.clipboard?.writeText(`https://${tunnel.hostname}`),
  • 写入剪贴板
    lib/client.js:722
    await navigator.clipboard?.writeText(text);
  • 写入剪贴板
    lib/client.js:1177
    onClick: () => navigator.clipboard?.writeText(mrUrl),
  • 读取本地文件
    lib/overview.js:45
    if (existsSync('/usr/local/bin/govard') || existsSync('/usr/bin/govard') || existsSync(join(homedir(), '.local/bin/govard')))
  • 执行外部命令固定命令
    lib/overview.js:51
    execFileSync('govard', ['version'], { timeout: 800, stdio: 'pipe' });
  • 执行外部命令固定命令
    lib/overview.js:60
    const out = execFileSync('govard', ['version'], { encoding: 'utf8', timeout: 800 }).trim();
  • 读取本地文件
    lib/overview.js:86
    const txt = readFileSync(p, 'utf8');
  • 读取本地文件
    lib/overview.js:99
    const files = readdirSync(dir);
  • 读取本地文件
    lib/overview.js:106
    supervisorCount = readdirSync(alt).length;
  • 读取本地文件
    lib/overview.js:114
    if (!existsSync(p))
  • 读取本地文件
    lib/overview.js:116
    const j = JSON.parse(readFileSync(p, 'utf8'));
  • 执行外部命令固定命令
    lib/overview.js:188
    const out2 = execFileSync('zstd', ['-d', '-c', fp], { maxBuffer: 256 * 1024, timeout: 500 });
  • 读取本地文件
    lib/plugins.js:8
    if (!existsSync(pkgJsonPath))
  • 读取本地文件
    lib/plugins.js:10
    const pj = JSON.parse(readFileSync(pkgJsonPath, 'utf8'));
  • 读取本地文件
    lib/plugins.js:39
    if (existsSync(c)) {
  • 读取本地文件
    lib/plugins.js:45
    if (existsSync(pkgDir))
  • 读取本地文件
    lib/plugins.js:54
    if (existsSync(pkg))
  • 读取本地文件
    lib/plugins.js:57
    if (existsSync(altPkg)) {
  • 请求外部主机models.dev
    lib/usage.js:97
    const res = await fetch('https://models.dev/api.json', { signal: ctrl.signal });
  • 发起网络请求
    lib/usage.js:97
    const res = await fetch('https://models.dev/api.json', { signal: ctrl.signal });
  • 读取本地文件
    lib/usage.js:263
    if (existsSync(sessionsDir)) {
  • 读取本地文件
    lib/usage.js:265
    const groups = readdirSync(sessionsDir, { withFileTypes: true });
  • 读取本地文件
    lib/usage.js:271
    const st = statSync(groupPath);
  • 读取本地文件
    lib/usage.js:276
    const subs = readdirSync(groupPath, { withFileTypes: true });
  • 读取本地文件
    lib/usage.js:286
    if (existsSync(p1))
  • 读取本地文件
    lib/usage.js:288
    else if (existsSync(p2))
  • 读取本地文件
    lib/reviews.js:10
    if (!existsSync(p))
  • 读取本地文件
    lib/reviews.js:12
    const j = JSON.parse(readFileSync(p, 'utf8'));
  • 读取本地文件
    lib/reviews.js:28
    if (existsSync(altFile))
  • 读取本地文件
    lib/reviews.js:29
    raw = readFileSync(altFile, 'utf8');
  • 读取本地文件
    lib/reviews.js:30
    else if (existsSync(file))
  • 读取本地文件
    lib/reviews.js:31
    raw = readFileSync(file, 'utf8');
  • 读取本地文件
    src/host/overview.ts:37
    if (existsSync('/usr/local/bin/govard') || existsSync('/usr/bin/govard') || existsSync(join(homedir(), '.local/bin/govard'))) hasGovard = true
  • 执行外部命令固定命令
    src/host/overview.ts:40
    try { execFileSync('govard', ['version'], { timeout: 800, stdio: 'pipe' }); hasGovard = true } catch {}
  • 执行外部命令固定命令
    src/host/overview.ts:46
    const out = execFileSync('govard', ['version'], { encoding: 'utf8', timeout: 800 }).trim()
  • 读取本地文件
    src/host/overview.ts:64
    const txt = readFileSync(p, 'utf8')
  • 读取本地文件
    src/host/overview.ts:73
    const files = readdirSync(dir)
  • 读取本地文件
    src/host/overview.ts:79
    supervisorCount = readdirSync(alt).length
  • 读取本地文件
    src/host/overview.ts:86
    if (!existsSync(p)) continue
  • 读取本地文件
    src/host/overview.ts:87
    const j = JSON.parse(readFileSync(p, 'utf8'))
  • 执行外部命令固定命令
    src/host/overview.ts:154
    const out2 = execFileSync('zstd', ['-d', '-c', fp], { maxBuffer: 256 * 1024, timeout: 500 })
  • 读取本地文件
    src/host/plugins.ts:17
    if (!existsSync(pkgJsonPath)) return undefined
  • 读取本地文件
    src/host/plugins.ts:18
    const pj = JSON.parse(readFileSync(pkgJsonPath, 'utf8'))
  • 读取本地文件
    src/host/plugins.ts:50
    if (existsSync(c)) {
  • 读取本地文件
    src/host/plugins.ts:55
    if (existsSync(pkgDir)) return pkgDir
  • 读取本地文件
    src/host/plugins.ts:62
    if (existsSync(pkg)) return pkg
  • 读取本地文件
    src/host/plugins.ts:64
    if (existsSync(altPkg)) {
  • 读取本地文件
    src/host/reviews.ts:12
    if (!existsSync(p)) continue
  • 读取本地文件
    src/host/reviews.ts:13
    const j = JSON.parse(readFileSync(p, 'utf8'))
  • 读取本地文件
    src/host/reviews.ts:24
    if (existsSync(altFile)) raw = readFileSync(altFile, 'utf8')
  • 读取本地文件
    src/host/reviews.ts:24
    if (existsSync(altFile)) raw = readFileSync(altFile, 'utf8')
  • 读取本地文件
    src/host/reviews.ts:25
    else if (existsSync(file)) raw = readFileSync(file, 'utf8')
  • 读取本地文件
    src/host/reviews.ts:25
    else if (existsSync(file)) raw = readFileSync(file, 'utf8')
  • 请求外部主机models.dev
    src/host/usage.ts:80
    const res = await fetch('https://models.dev/api.json', { signal: ctrl.signal } as any)
  • 发起网络请求
    src/host/usage.ts:80
    const res = await fetch('https://models.dev/api.json', { signal: ctrl.signal } as any)
  • 读取本地文件
    src/host/usage.ts:221
    if (existsSync(sessionsDir)) {
  • 读取本地文件
    src/host/usage.ts:223
    const groups = readdirSync(sessionsDir, { withFileTypes: true })
  • 读取本地文件
    src/host/usage.ts:229
    const st = statSync(groupPath)
  • 读取本地文件
    src/host/usage.ts:233
    const subs = readdirSync(groupPath, { withFileTypes: true })
  • 读取本地文件
    src/host/usage.ts:243
    if (existsSync(p1)) entries = [{ name: `${group.name}/session.jsonl.zstd`, path: p1, isDir: false }]
  • 读取本地文件
    src/host/usage.ts:244
    else if (existsSync(p2)) entries = [{ name: `${group.name}/session.jsonl`, path: p2, isDir: false }]
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:models.dev

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 概览与插件管理
  • 用量查看
v0.4.12026-09-22
· 变更 · 将 @ddtcorex/dsh-maestro-config-lib 升级到 ^0.3.0(支持 unset)。 · 变更内容 · 杂项:发布 v0.4.1 完整变更日志:
v0.4.02026-09-15
· 新增 · Activity 标签页,由 observe RPC 支撑——Dashboard 直接调用 /dsh-maestro-observe(追踪 kind: 'tool'、错误、延迟),渲染按工具统计的调用、错误分组(工具 + 签名 + 次数 + 最近出现时间)以及延迟 p50/p95/p99。未安装 observe 时整个标签页隐藏。与 Usage(成本/token/迷你图/预算/定价)和 Plugins(版本/状态)不重叠。纯客户端改动:刷新浏览器即可加载,无需重启宿主(#25)。 · 已记录 · 按工具归因 token 目前结构上为零(usage 记录在 step 记录上,tool: null),所以工具计数取自最近的 trace 环形缓冲;latency_ms 尚未采集,因此延迟区块显示诚实的空状态。两者都是 observe 采集的后续工作,不是 dashboard 的缺口。 · 变更内容 · fix(dashboard):改用拥有共享存储的 config-lib · feat:Activity 标签页,由 observe RPC 支撑(工具 token、错误、延迟) · chore:发布 v0.4.0 完整变更日志:
v0.3.32026-09-14
· 变更内容 · 文档:声明包许可证、仓库和 Node 引擎版本 · 修复(测试):清理发布泄漏防护,发布 v0.3.3 完整变更日志:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-maestro-dashboard Maestro Dashboard — 统一控制中心(概览/插件/用量)DSH 原生 DSH Maestro 插件 — 属于 dsh-maestro-* 生态系统(@ddtcorex/dsh-maestro-dashboard)。 安装 dsh plugin add @ddtcorex/dsh-maestro-dashboard 开发 pnpm --filter @ddtcorex/dsh-maestro-dashboard verify pnpm --filter @ddtcorex/dsh-maestro-dashboard build
预览分享卡片长什么样 ↓ddtcorex/dsh-maestro-dashboard
分享 · DeepSeek Harness Hub
ddtcorex/dsh-maestro-dashboard

Maestro Dashboard — 统一控制中心概览/插件/用量DSH 原生

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