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

任务指挥台 BadCalna/dsh-plugin-command-centre

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

一屏总览所有任务进度、子代理关系与产出

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    index.js:147
    const raw = await readFile(PREFS_PATH, 'utf8');
  • 写入本地文件
    index.js:158
    await mkdir(dirname(PREFS_PATH), { recursive: true });
  • 写入本地文件
    index.js:160
    await writeFile(temporary, serialized, 'utf8');
  • 写入本地文件
    index.js:161
    await rename(temporary, PREFS_PATH);
  • 发起网络请求
    client.js:1577
    const response = await fetch(CANVAS_PREFS_ROUTE, { headers: { accept: 'application/json' }, cache: 'no-store' });
  • 发起网络请求
    client.js:1609
    fetch(CANVAS_PREFS_ROUTE, {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DeepSeek Harness 指挥中心:赛博朋克风的任务控制面板,展示每个任务的进度、子代理树和输出(只读 V1a)。

README

由 DeepSeek 最新模型翻译生成
Command Centre · 任务指挥台 给 DeepSeek Harness 的 Web UI 加一个整页「Command Centre」: 一屏看所有对话任务的进度、subagent 关系和产出,替代「左列表 / 中对话 / 右输出」那种「一次只能看一个对话」的视角。 纯增量插件:新增一个 main 面板 + 左侧一个图标 + 一个全局快捷键,不替换宿主的 root / sidebar / rightbar,随时可卸载。 V1a:只读。它是观察台 + 跳转器,不做批准 / 回答 / 打断(那是 V2 的动作通道)。 ┌ ◆ COMMAND CENTRE ── [03 运行] [02 待你] [00 空闲] ── [看板|矩阵] [搜索] [过滤] ┐ │ ⚠ 需要你 · 02 支付重构 · 待批准 登录超时 · 待回答 │ ├──────────────┬──────────────────────┬──────────────────────┐ │ CH-01 需要你 │ CH-02 运行中 │ CH-03 空闲 │ │ ┌──────────┐ │ ┌──────────────────┐ │ ┌──────────────────┐ │ │ │支付重构 │ │ │修复登录超时 │ │ │整理会议纪要 │ │ │ │待批准 │ │ │AGENTS 主+2子 1跑
展开完整文档(README 剩余 1 节)
Command Centre · 任务指挥台

给 DeepSeek Harness 的 Web UI 加一个整页「Command Centre」: 一屏看所有对话任务的进度、subagent 关系和产出,替代「左列表 / 中对话 / 右输出」那种「一次只能看一个对话」的视角。

纯增量插件:新增一个 main 面板 + 左侧一个图标 + 一个全局快捷键,不替换宿主的 root / sidebar / rightbar,随时可卸载。

V1a:只读。它是观察台 + 跳转器,不做批准 / 回答 / 打断(那是 V2 的动作通道)。

┌ ◆ COMMAND CENTRE ── [03 运行] [02 待你] [00 空闲] ── [看板|矩阵] [搜索] [过滤] ┐ │ ⚠ 需要你 · 02 支付重构 · 待批准 登录超时 · 待回答 │ ├──────────────┬──────────────────────┬──────────────────────┐ │ CH-01 需要你 │ CH-02 运行中 │ CH-03 空闲 │ │ ┌──────────┐ │ ┌──────────────────┐ │ ┌──────────────────┐ │ │ │支付重构 │ │ │修复登录超时 │ │ │整理会议纪要 │ │ │ │待批准 │ │ │AGENTS 主+2子 1跑 │ │ │AGENTS 主 │ │ │ │AGENTS 主 │ │ │CTX 69% │ │ │CTX 12% │ │ │ │CTX — │ │ │▓▓░░░░ 1/3 │ │ │░░░░░░ — │ │ │ │OUT — │ │ │ ├ 定位超时 4m前 │ │ │OUT — │ │ │ └──────────┘ │ │ └ 写回归测试 3m前│ │ └──────────────────┘ │ ├──────────────┴──────────────────────┴──────────────────────┤ │ SYS // j/k 移动 · Enter 详情 · o 打开 · v 视图 · f 过滤 │ └────────────────────────────────────────────────────────────┘

能做什么

- 看板(默认):需要你 / 运行中 / 空闲 三列,列头带 CH-0N 编号与计数;按 v 切到矩阵视图
- 卡片:状态点、标题、工作区、AGENTS 主+2子(含活跃数)、CTX 62%、todo 分段进度、最后活动、 产出码(OUT 1D = 交付了 1 个交付物 / OUT 2F = 写了 2 个文件 / TXT = 有回答 / ERR = 出错,悬停看内容)
- 四个看板列:需要你 / 运行中 / 失败 / 空闲;失败来自宿主的 turn/end.reason (error / blocked / max-tokens)
- subagent:卡片内嵌第一层子 agent(−N 收起 / +N 展开 / 更深层显示 +N 计数)
- 需要你横幅:审批 / 计划审核 / 提问被顶到最上方,处理完自动消失
- 详情抽屉:概览 / 目标(goal)/ 团队 / todo 全量 / 子任务 / 产出区(交付物 + 文件区 + 对话区,真实数据); 交付物来自会话日志的 deliverables/presented(agent 用 present 交出来的文件),所以脚本生成的 pptx/xlsx/png 也算产出,不再只看 write/edit;写的脚本/中间文件仍列在下面;点文件 → 面板内文件预览(文本/代码按行读、图片走 remote.workspaceFiles.readBytes 转 blob,其他类型给「在桌面打开」);预览走 remote.workspaceFiles / remote.session 两个命名空间(ctx.inject 必须声明 remote.<ns>,只声明 remote 会在运行时报 without inject),结果按 { ok, value } 信封解包,「在桌面打开」先把相对路径经 stat.absolutePath 绝对化
- 设置(⚙):默认界面(看板 / 矩阵 / 画布)、主题(跟随系统 / 亮 / 暗,亮暗两套都覆盖宿主 token,强制亮/暗不会漏色)、安静模式默认开、是否记住上次界面
- 节点间投递:把抽屉「产出 · 文件区」里的文件拖到看板卡片或画布节点上 → 确认框 → 以 queue 模式向目标会话投一条带文件路径的用户消息(不会打断正在跑的回合);可选附带来源会话的最近回答摘要。文件不拷贝,目标 agent 用自己的工具读。
在画布上尤其顺手:点开 A 节点的抽屉看产出、直接把文件行拖到画布上可见的 B 节点——抽屉打开时遮罩层不再吃掉拖放事件(拖拽期间节点高亮成可投放目标),松开即进入投递确认
- 对话区做轻量 markdown 扁平化(去 *、标题、列表符号),不引第三方库
- 跳转:打开对话 回到 Conversation(↗、双击卡片、o)
- 快捷键:⌘⇧P(Windows / Linux 为 Ctrl+Shift+P)打开 / 返回面板;可在 设置 → 快捷键 改键
- 节点式画布:v 切到「画布」,任务变成节点、父子关系连线,单子节点不换行;默认 纵(上→下)+ 直角连线;左上角可切方向(横/纵)、连线(曲线/直角); 节点可拖(拖动一个节点时它的整棵子树一起走,连线跟随,↺ 重置);子节点挂在弹簧上跟随,起步同帧,快速拖动时有轻微拖尾,松手收一下再落定(拖尾上限 26px,不会散架;prefers-reduced-motion 下改为刚性平移);空白处拖拽平移、滚轮直接缩放、Shift+滚轮平移、0 适配全图;只画节点和连线:不再套「根子树」分组框和重复标题(标题就在节点里,从属关系看连线 + 主/子 标记);节点是圆角矩形;连线端点会自动选边(按两个节点的相对位置挑最近的父/子边,端点沿边滑向对方,多子节点自然分叉,不再固定钉在卡片右侧),拖动节点到任意方位都会重新选边;连线加粗并带主题强调色,选中节点的上下游连线会高亮发光;从看板卡片右上角 ⌗ 进入会自动 fit 到该任务的子树。子树范围按当前选中节点往下取;布局选择与手动位置存 localStorage(dsh.command-centre.canvas.v1),刷新/重启保持
- 「← 指挥台」返回按钮:从指挥台跳进对话后,对话头部会多一个 ← 指挥台 小按钮,点它回到 Command Centre 并恢复离开前的视图和选中的任务(画布/看板/矩阵 + 选中节点 + 画布聚焦位置);它占的是宿主的 conversation.header.leading 槽位(root scope、当前无宿主占用、替换风险 none),不遮蔽任何宿主 UI
- 画布右键节点:继续对话 / 查看工作轨迹 / 修改标题 / 打开对话
- 继续对话:就在节点旁弹一个输入框,Enter 发送(queue 模式,排到下一轮、不打断正在跑的回合),每次草稿带 requestId,重复点不会重复投递;发完显示「已排队,下一轮送到」
- 查看工作轨迹:优先打开宿主原生的「轨迹」标签(会话视图,best-effort:会把该会话的视图偏好设成 trajectory 再打开对话);原生不可用时(没开「设置 → 通用 → 显示代码工作视图」,或该部署没挂载轨迹视图)退化为右侧的面板内紧凑轨迹——回合分隔、工具调用 + 文件/命令、回答摘要、交付物、工具错误,数据来自会话已加载的事件窗口(冷会话也能读、不唤醒 Agent,只覆盖最近窗口)
- 修改标题:走宿主 session.rename(durable、进会话日志);注意宿主会先 resume 这个会话
- 性能:面板不在前台时宿主会卸载整个组件(keyed main slot),聊天/输入时没有本插件的渲染、定时器、监听器和 CSS; Host 投影约 0.13µs/事件(一个回合 ~0.04ms)、状态 ~0.6KB/会话;打开面板时只预热前 8 个会话的投影(v0.9.4 起,之前会一次唤醒 80 个冷会话的日志加载)
- 过滤:搜索、工作区下拉、全部 / 只看活跃 / 只看待你
- 安静模式(s):降饱和,长时间盯屏不刺眼

快捷键

| 键 | 动作 |
| ⌘⇧P | 打开 / 返回 Command Centre(侧栏 ⌘B 收起后也能回到这里) |
| j / k,↓ / ↑ | 在任务之间移动 |
| Enter | 打开详情抽屉 |
| o | 打开该任务的对话 |
| v | 视图循环:看板 → 矩阵 → 画布 |
| 0 | 画布:适配全图(⌖ 按钮同效) |
| 画布左上 | 横/纵布局、全部/子树范围、曲线/直角连线 |
| f | 过滤循环(全部 → 只看活跃 → 只看待你) |
| s | 安静模式 |
| / | 聚焦搜索 |

在插件的输入框(搜索 / 画布发问 / 改标题)里打字不会触发这些单键快捷键,也不会穿透到宿主的全局快捷键:输入框会把未带修饰键的按键拦在自己这一层;中文输入法组字期间(isComposing/keyCode 229)的回车也不会误发送。
| Esc | 关闭抽屉 |

为什么不是 ⌘P:它被宿主的「工作区文件」面板占用(workspace.files),宿主的快捷键服务对冲突是拒绝而不是覆盖,所以插件用 ⌘⇧P。

安装

前提:DeepSeek Harness 0.2.1-rc.3(main / sidebar.panellist / locale / shortcuts 契约在该版本核对过;其他版本可能需要小改)。

在 Harness Web UI 里:左侧 插件 → 安装插件 → 安装源填下面任一:

github:BadCalna/dsh-plugin-command-centre

或本地目录 / 软链(开发时推荐):

link:/absolute/path/to/dsh-plugin-command-centre

装完左侧面板列表出现 Command Centre,按 ⌘⇧P 或点图标进入。
卸载:插件页里对该插件「停用 / 删除」即可,不改动宿主任何文件。

用命令行 profile(非桌面 App 独占管理的 profile)时等价命令:
dsh plugin --profile <name> add github:BadCalna/dsh-plugin-command-centre,
再把它加进该 profile 的 dsh.profile.bundles(插件管理页会代劳)。

它现在不做什么

- 产出是折叠来的、不是 diff:files 来自 tool/call 里 write/edit 的 file_path(最近 5 个,计数是累计写入次数),不是 git 级别的改动列表;最后回答截断到 200 字符
- 只读:批准 / 回答 / 打断都不做
- 不持久化面板选中态:刷新回对话页,所以给了 ⌘⇧P
- 不支持拖拽改状态:状态来自宿主投影,拖了也没地方写
- 画布不能画 workflow 阶段节点:workflow/ 是 Host 事件、不转发,要等 Host 投影(V1b 之后)
- 画布位置存本机 Host 文件(~/.dsh/command-centre/canvas.json),不跟随账号/换机器
- 投递是写操作:会在目标会话里排一条用户消息(queue 模式,不打断运行中的回合);是路径引用,不是文件拷贝;目标是 subagent 会话时可能被宿主拒绝(会显示错误)
- 投递没有撤销:发出去就是一条排队消息,取消请到目标会话里删
- 文件预览在面板内,不是宿主右栏的原生预览面板(宿主没暴露打开它的 Client API)
- 只看所有工作区(可下拉过滤;「只看当前工作区」需要宿主暴露当前工作区,暂缺)
- 返回按钮寄宿在宿主槽位:如果某个版本的宿主自己占用了 conversation.header.leading,我们的注册会被拒绝(插件只打 warn 并跳过,不影响其它功能),此时仍可用 ⌘⇧P 或侧栏图标回来
- 工作轨迹只是最近窗口:首屏历史按「≥50 条消息 / ≥2 回合、上限 500」加载,更早的要 loadOlder();也不支持「跳到某一条消息」(宿主没有暴露 anchor/seq 深链),只能先打开对话
- 改标题会唤醒会话:宿主 rename 前会 resume 冷会话;子 agent 会话/被别的 writer 占住时会返回宿主错误
- 继续对话对子会话有限制:one-shot 子会话只读、归档会话发进去可能被 gate 成 blocked(宿主行为,插件只显示错误)

数据来源

全部来自宿主 Client 已有投影,不额外开历史流:

| 信号 | 来源 |
| 会话列表 + parentId 树 | useSessions(s => s) |
| running / 待处理 / 未读 | useSessionStatus(m => m) |
| 工作区名 | useWorkspaces(s => s) |
| todo 进度 | 投影 todos |
| 上下文占用 | 投影 contextPressure |
| token 数 | 投影 tokenUsage |
| 子 agent 目录 / 时长 | 投影 subagentCatalog / subagentTiming |
| 目标 / 团队 | 投影 goal / agentTeam |
| 交付物(脚本生成也算) | Host 投影 missionControl.deliverables,fold 会话日志的 deliverables/presented |
| 工作轨迹(最近动作) | sessions.using(id, …, ref => ref.binding.eventSource.getSnapshot().entries),按 turn/tool/回答/交付折叠 |
| 改标题 | sessions.using(id, …, ref => ref.binding.session.rename(title)) → remote.session.rename |

冷会话投影用 ctx.sessions.refreshProjections(id) 拉一次(不 retain、不开流)。

开发

无构建步骤:纯 JS + CSS(window.__ModuleLoader__ 约定,无 JSX,不 require 任何宿主 Client 包)。

client.js # 全部 UI + 数据派生 + 快捷键 index.js # Host half:missionControl 投影 + canvas 偏好持久化路由 cordis.patch.yml # 插入一条 id: mission-control 的插件行
locale/{zh,en}.json # 插件管理页展示用的 meta(运行时词典在 client.js)
icon.svg # 侧栏 + 插件页图标 scripts/smoke-client.cjs # 离线逻辑冒烟测试(stub React,无 DOM) docs/ # 设计调研、视觉规范、状态记录

node --check client.js
node --check index.js
node scripts/smoke-client.cjs # Client:渲染树 + 交互 + 画布弹簧拖拽
node scripts/smoke-host.mjs # Host:missionControl 投影 fold(含 deliverables)

冒烟测试覆盖:模块工厂 → apply 注册两个 slot(main:mission 与 sidebar.panellist:mission 逐字相同)→ 中英词典完整性 → ⌘⇧P 注册与 resolve → 示例数据渲染整页看板 → 点卡片出抽屉,并断言输出无 undefined / NaN / [object Object]。
这是逻辑测试,不替代真机视觉验收。

本地迭代:link: 安装时 pnpm 建软链,改完 ⌘R 刷新即可;目录安装时是硬链接, 原地改文件会同步,但"删了重建"会断链(ln -f 可修)。

设计文档

docs/design/ 是完整的可行性调研:渲染面拓扑、slot 契约、数据可达矩阵、三种范式线框; docs/design/visual-cyberpunk.md 是赛博朋克视觉规范(参考案例 → CSS 落地映射); docs/design/node-canvas.md 是节点画布的布局算法、交互与分阶段规划。

DeepSeek Harness plugin

本仓库按 DSH 插件约定打包,供搜索与安装识别:

- 包名:dsh-plugin-command-centre(dsh-plugin- 前缀是社区惯例)
- npm keywords:dsh-plugin、deepseek-harness、dsh、plugin、mission-control、kanban、dashboard、cyberpunk
- GitHub topics:dsh-plugin、deepseek-harness、dsh、harness-plugin、kanban、mission-control、cyberpunk
- 清单:package.json 的 dsh.bundle.patch + dsh.client,cordis.patch.yml 只 insert 一行

License

MIT
预览分享卡片长什么样 ↓BadCalna/dsh-plugin-command-centre
分享 · DeepSeek Harness Hub
BadCalna/dsh-plugin-command-centre

一屏总览所有任务进度、子代理关系与产出

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