dsh-project-hud

DSH PLUGIN工具与能力

仓库 silversystem04-coder/dsh-project-hud · npm dsh-project-hud

工具与能力 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

为 DeepSeek Harness 在窗口顶边挂一排标签角,悬停展开项目进度、实时会话回合与上下文占用、手写卡片,可固定收纳改名。

一句话选型结论

按资料字段整理

dsh-project-hud 是工具与能力类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 0 · 未关闭 issue 未标注
最近更新 2026-11-09 创建于 2026-11-08
README 13.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-project-hud
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-project-hud可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-project-hud:DeepSeek Harness 窗口顶边的项目与实时会话标签

  • 顶边标签角悬停展开卡片
  • 实时会话回合与上下文占用
  • 项目线进度、截止与下一步
  • 手写卡片可编辑收纳
  • 会话卡自动出现与消失

适用场景

通知记忆

上游标签

dashboarddeepseek-harnessdshdsh-pluginhudsessions

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-11): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ? 未知
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-project-hud当前 L4 · 沙盒安装通过 低风险 0 未标注 有
huashu-design 未做沙盒验证 未标注 3.0 万 未标注 有
loopx 未做沙盒验证 未标注 6,233 未标注 无
agy-staff 未做沙盒验证 未标注 870 未标注 有
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方silversystem04-coder仓库 dsh-project-hud · 默认分支 未标注
分类工具与能力storage
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-11-08 · 2026-11-09最后推送 未标注
本站收录2026-11-10首次进入本站目录的时间

README 全文

13.2 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-project-hud —— 窗口最上方的一排标签角

> What it is (EN). A DeepSeek Harness client plugin: a row of tabs hanging from the
> window's top edge. Hover one and a card drops down showing either a project line
> (progress bar, current step, what to watch out for), a live session (which turn /
> step it is on right now, context usage, model), or a card you wrote yourself. Sessions
> turn into cards automatically and vanish when they end; you can pin, shelf, rename,
> edit or delete any of them inline. Zero dependencies, hand-written bundle, no build step.

窗口顶边一排小角,一张角一样东西:一条线、一个正在跑的会话、或者你自己加的一张卡。
鼠标停上去往下掉一张卡;点一下钉住,再点或 Esc 收起(角移到卡上有 240ms 缓冲,不会中途收掉)。

三种卡长这样:

┌ 记忆结构插件可视化会话 ──────── [在跑] [DSH / 记忆] ┐   ← 会话卡:自动出现、自动消失
│ 第 19 回合 · 第 81 步:给那个卡片的插件添加实时检测… │
│ 上下文                        98k / 1.0M      10%  │
│ ▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  │
│ 第 19 回合   563 步              deepseek-flash      │
│ [固定住] [收纳] [改名] [删除]                        │
└─────────────────────────────────────────────────────┘

┌ 职规赛 ──────────────────── [已完成] ┐                ← 线卡:读交接单,人维护
│ 生涯发展展示:报告已定稿               │
│ 阶段进度                    0 / 8 页   │
│ ── 到这一步 ────────────────────────  │
│ 生涯发展展示 PPT(≤50MB,8 页)        │
│ ── 该注意 ──────────────────────────  │
│ 「展示 PPT 提交」还有 4d20h。          │
└────────────────────────────────────────┘

┌ 整理答辩稿 ─────────────────────────────┐              ← 手写卡:点条带末尾「+」加的
│ 周五前要交                             │
│ ● 写提纲   ● 配图                      │
│ [编辑] [收纳] [删除]                   │
└─────────────────────────────────────────┘

右边永远有:条带末尾的 「+」(加一张手写卡)、「其余 N」(闲下来的会话 / 暂停的线 /
别的线 / 已删除可恢复 / 自动会话卡开关)、「收纳」(收进去的卡都在这儿,能取回、能删)。

数据来自三层,各管各的

层 存在哪 谁改 频率
线 brain/journal/projects.json + brain/线NN_xxx.md 人(或者我写进交接单) 慢
会话 ~/.dsh/storages/session_projcache/sessions/session-.json DSH 自己,每推进一步重写一次 秒级
你自己加的 brain/journal/cards.json 面板上点出来的 随时

线卡(字段来源)

卡上的东西 来源
线名 / 颜色 / 状态 / 一句话说明 projects.json 的 name color status brief
阶段进度 + 进度条 stage.done / stage.total / unit / note(total=0 显示「未排期」,不假装有进度)
截止 + 倒计时 deadlines[]
到这一步 / 后面还排着 交接单的 **待做:** 块;—— 后面那半句当细化做法
卡在 交接单的 **待定:**
在跑的会话 会话缓存里 title / currentStep / turns,按 keywords 归到线上
该注意 lib/projects.js 的 buildAdvice,规则见下

会话卡(自动)

卡上的东西 缓存里的字段
标题 title
这一步 sessionStats.openStep + turnOutline.turns 最后一条 → 「第 N 回合 · 第 M 步:prompt 首行」;没在步内就显示最后一句 prompt
上下文占用条 contextPressure.pressureTokens / contextWindow
回合 / 步数 / 模型 sessionStats.turns steps、modelSelection.lastUsed.model
归到哪条线 会话标题 + 当前步骤 + 最后回答 里找 projects.json 的 keywords,命中取最长关键词
在跑 / 刚闲下来 缓存文件的 mtime —— 120 秒内重写过就算在跑

会话卡会自己出现、自己消失:窗口内(默认 12 小时)有活动的会话才出现;关掉之后从条带消失,
除非你「固定」过它(固定 = 在 cards.json 里留一条,即使缓存过期也还在)。

该注意的规则(全在 buildAdvice,一眼能读完):

条件 说一句
截止 <72h 且 done === 0 还剩 X,一步没动 —— 这周只做这一件
截止 <72h 且已有进展 还剩 X,收尾优先
截止 <7d 还有 X
done &gt;= total 这一步做完了 —— 去加下一件,别空转
total === 0 没排期:定一个 ≤2 周能交的东西
paused 且没截止 停着:要么定日子,要么划掉
有 **待定:** 卡在:……
3 天没改交接单 N 天没碰交接单了
活跃但没有交接单 开一张 线NN_&lt;名字&gt;.md,把下一步一句话写死

不做的事:不推断进度(done/total 是人写的数字)、不猜哪些待做已经做完、
不替你改交接单。会话卡只读缓存,不读会话日志(那是多帧 zstd,解不动也没必要)。

标签怎么排

maxLive(默认 3)张会话卡 + maxTabs(默认 5)张线卡 + 手写卡,再加一个「其余 N」。

  1. 在跑的会话排最前(按最近活跃);
  2. 有会话在跑的线紧跟其后(正在干活的那条线不该排到 5 张之外),再按最近截止升序;
  3. 同档按「有排期 > 有交接单待做 > 都没有」,再按名字;
  4. 闲下来的会话、暂停、已放弃、兜底的「其他」全部折进「其余 N」,分组列出来。

面板能做什么

动作 落在哪
+ 加一张卡(标题 / 备注 / 步骤) cards.json 的 cards[]
改名 / 写备注 / 编辑步骤 手写卡改本体;线和会话改名记在 cards.json 的 projects{} / sessions{} 覆盖层
固定住 会话卡 sessions[].pinned,之后即使缓存过期也留着
收纳 任何卡都能收,收进去的进「收纳」那张卡,能取回、能删
删除 线卡/会话卡 记一个 hidden,不删 projects.json 里的线;点两下才真删(先变成「真删掉?」)
恢复 在「其余」面板的「已删除(可恢复)」里点「恢复」,把 hidden 撤掉,卡回条带
自动会话卡开关 / 窗口 12h·24h / 3 张·5 张 cards.json 的 settings

projects.json 永远不会被面板改写 —— 所有人为操作都落在单独一个 cards.json 里,
写盘是「先 .bak、再 .tmp、最后 rename」,坏 JSON 读进来只报错、绝不覆盖。

装

三种方式,选一个。

A. 从 npm 装(推荐,插件市场里也是这个)

dsh plugin --profile web add dsh-project-hud

B. 从 GitHub 装

dsh plugin --profile web add github:silversystem04-coder/dsh-project-hud

装完重启 DSH(host 半边是启动时加载的)。

C. 本地装(想改代码、或者想让它接上你自己的 brain/)

# 只装插件(会话卡 + 手写卡,不需要任何前置数据)
powershell -NoProfile -ExecutionPolicy Bypass -File dsh-project-hud\install.ps1

# 同时也接上自己的项目线(projects.json 和交接单在哪就指哪)
powershell -NoProfile -ExecutionPolicy Bypass -File dsh-project-hud\install.ps1 `
-BrainDir &quot;D:\my-brain&quot;

复制到 profile 的 plugins\ 与 node_modules\(同一路径重复载入会用旧模块缓存,所以每次整目录覆盖),
再把 cordis.patch.yml 缺的 insert 补上。-Profile 默认 ~\.dsh\profiles\desktop。

> 已发布到 npm:(v0.2.1)。

没有 projects.json 也能用:那时没有线卡,只剩会话卡和手写卡,条带上会常驻一行灰字说明。
brainDir 指向的目录只要在 journal\projects.json 放一个数组就行,格式见下面的「配置」。

  • 改了 lib/client.js:刷新页面(Ctrl+R)就够。
  • 改了 index.js(host 半边):要重启 DSH,因为它是启动时加载的。

卸

删 cordis.patch.yml 末尾那段 - insert: ... name: &#x27;dsh-project-hud&#x27;,删两个目录,刷新。
brain/journal/cards.json 是你的数据,留着不影响(删了只是自定义卡和收纳没了)。

配置

- insert:
- id: project-hud
name: &#x27;dsh-project-hud&#x27;
config:
brainDir: &#x27;D:\my-brain&#x27;
cacheDir: &#x27;&#x27;        # 空 = \storages\session_projcache\sessions
maxTabs: 5          # 线卡最多几张
maxLive: 3          # 会话卡最多几张
windowHours: 12     # 多久没动的会话就不再出现
cacheMs: 2000       # 拼板缓存(面板每 3 秒拉一次)

journalprojects.json 是一个数组,最小一条长这样:

[
{
&quot;id&quot;: &quot;site&quot;,
&quot;name&quot;: &quot;官网改版&quot;,
&quot;color&quot;: &quot;#4b8bf5&quot;,
&quot;status&quot;: &quot;active&quot;,
&quot;brief&quot;: &quot;一句话说清这条线在干什么&quot;,
&quot;keywords&quot;: [&quot;官网&quot;, &quot;landing&quot;, &quot;首页&quot;],
&quot;deadlines&quot;: [{ &quot;at&quot;: &quot;2026-12-01T18:00:00+08:00&quot;, &quot;label&quot;: &quot;上线&quot; }],
&quot;stage&quot;: { &quot;done&quot;: 2, &quot;total&quot;: 6, &quot;unit&quot;: &quot;页&quot;, &quot;note&quot;: &quot;首页 / 关于&quot; }
}
]

status 取 active / paused / done / dropped;keywords 用来把会话归到这条线上。
stage.total 是 0 或缺失时显示「未排期」,不假装有进度。
「当前步骤 / 后面还排着」来自同目录的 线NN_名字.md,认 **待做:** 块下的 - / 1. 条目,
—— 后面那半句当细化做法;**待定:** 当卡点。

接口

GET  /project-hud/api/ping                    # build / 目录是否存在
GET  /project-hud/api/cards[?fresh=1]         # 标签、卡片、收纳、其余,一次拿全
POST /project-hud/api/mutate                  # 唯一写入口,body 是 {op: ...}

mutate 的 op:add / update / remove / flag(shelf|pinned|hidden) / rename / note /
meta(一次改 title+note+steps)/ settings。

写入口有三道门:只收 127.0.0.1、拒绝 sec-fetch-site: cross-site、必须带 x-project-hud: 1
且 content-type: application/json(body 上限 128KB)。跨源网页想发这个请求,得先过 preflight,
而 preflight 也会被挡下来。

会话里问:project_hud(action=lines | sessions | line, id=yiyu)。

自检

node dsh-project-hud\test.mjs                    # 40 项:交接单解析 + 真实数据分组排序 + cards.json 增删改 + 会话缓存 + 拼板
node dsh-project-hud\test\render-smoke.mjs       # 16 项:假 React 渲染四种卡,不越界不出 NaN
node dsh-project-hud\test\http-check.mjs         # 12 项:假 ctx 起真 HTTP,GET/POST 全走一遍(写的是临时目录)
node dsh-project-hud\test\visual.mjs  &lt;打开哪个角&gt;   # 生成 test\visual.html

截图(preview*.png 就是这么来的,不需要 puppeteer):

&amp; &quot;C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe&quot; --headless=new `
--disable-gpu --hide-scrollbars --no-first-run --disable-extensions `
--user-data-dir=&quot;$env:TEMP\edgeshot&quot; --force-device-scale-factor=2 `
--window-size=920,600 --virtual-time-budget=4000 `
--screenshot=dsh-project-hud\preview.png `
&quot;file:////test/visual.html&quot;

test\visual.html 里另画了一条假标题栏,用来看标签角到底压在窗口的哪个位置。

已知边界

  • 位置是窗口顶边正中。它压在标题栏上半部分(19–23px 高),条带本身点得穿,
    只有角和卡吃鼠标;但如果标题栏正中放着自己的控件,会被挡到,需要改 S.strip 的定位。
  • 客户端每 3 秒拉一次 /api/cards(页面在后台时不拉)。会话卡因此最多晚 3 秒。
  • 「在跑」是靠缓存文件 mtime 猜的,不是宿主告诉你状态。真停了但 120 秒内写过,会多显示一会儿。
  • 只有 projects.json 里有的线才有线卡。会话归不到线时就是一张纯会话卡。
  • 交接单里的「待做」只认 - / 1. 开头的条目,认不出就当作没有,不猜。
  • 手写卡的「步骤」只是勾选和文字,不带日期、不带提醒。

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-project-hud 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-project-hud` 即可。对应的 npm 包名是 `dsh-project-hud`。

dsh-project-hud 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-project-hud 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-project-hud 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-project-hud 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-project-hud 有哪些功能?

顶边标签角悬停展开卡片、实时会话回合与上下文占用、项目线进度、截止与下一步、手写卡片可编辑收纳、会话卡自动出现与消失。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

工具与能力
按星标排序,可作替代方案

huashu-design

huashu-design

在 DeepSeek Harness 里说一句话,就能拿回可交付的设计:网页、App 原型、可编辑 PPTX、动画与信息图,自带 84 种风

未标注验证等级 3.0 万 星

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

agy-staff

agy-staff

把 Google Antigravity CLI 作为快速 Gemini 员工接入 DSH,提供子代理侧边栏、编排模式与多种角色技能。

未标注验证等级 870 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

silversystem04-coder 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-11。