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

刘海任务栏 aa2246740/dsh-notch

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

macOS 原生刘海,显示 DSH 会话、内联回答和动态任务状态

40.5/100
综合分
8
GitHub 星标
47
npm 周下载
—/5
用户评分

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

自动兼容检查未通过:要求 dsh >=0.2.0-rc.1 <0.2.1,而最新版为 0.2.1-rc.5。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add aa2246740/dsh-notch
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成

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

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

要求 dsh >=0.2.0-rc.1 <0.2.1,而最新版为 0.2.1-rc.5

展开查看检查明细 ↓

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

✓npm 包dsh-notch @ 0.3.6
✓Node 引擎未声明 engines.node
✗dsh CLI 依赖要求 >=0.2.0-rc.1 <0.2.1 · 最新 0.2.1-rc.5 不兼容
✓入口文件main/exports/bin 已声明

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 17:42:02

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 36 处,展示前 35 条)
  • 执行外部命令固定命令
    lib/index.mjs:12
    const text = execFileSync("/bin/ps", [
  • 读取本地文件
    lib/index.mjs:57
    return Number(readFileSync(pidPath, "utf8").trim());
  • 读取本地文件
    lib/index.mjs:84
    if (Date.now() - statSync(`${pidPath}.updating`).mtimeMs < 6e4) {
  • 写入本地文件
    lib/index.mjs:146
    mkdirSync(dirname(pidPath), { recursive: true });
  • 写入本地文件
    lib/index.mjs:148
    writeFileSync(stage, `${child.pid}\n`);
  • 写入本地文件
    lib/index.mjs:149
    renameSync(stage, pidPath);
  • 删除本地文件
    lib/index.mjs:183
    unlinkSync(pidPath);
  • 写入本地文件
    lib/index.mjs:248
    mkdirSync(DIR, {
  • 读取本地文件
    lib/index.mjs:255
    return JSON.parse(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/index.mjs:267
    writeFileSync(RUNTIME, `${JSON.stringify(file, null, 2)}\n`, {
  • 写入本地文件
    lib/index.mjs:279
    writeFileSync(SEEN, `${JSON.stringify(map)}\n`, {
  • 读取本地文件
    lib/index.mjs:938
    if (!existsSync(config.helperPath)) throw new Error("Configured Notch helper does not exist");
  • 发起网络请求
    lib/client.js:50
    await fetch("/dsh-notch/sidebar", {
  • 发起网络请求
    lib/client.js:67
    const response = await fetch("/dsh-notch/pending-focus", {
  • 执行外部命令固定命令
    desktop/notch-lifecycle.mjs:9
    const text = execFileSync('/bin/ps', ['-p', String(pid), '-o', 'lstart=', '-o', 'comm='],
  • 读取本地文件
    desktop/notch-lifecycle.mjs:34
    try { return Number(readFileSync(pidPath, 'utf8').trim()) } catch { return 0 }
  • 读取本地文件
    desktop/notch-lifecycle.mjs:51
    if (Date.now() - statSync(`${pidPath}.updating`).mtimeMs < 60000) { schedule(); return }
  • 写入本地文件
    desktop/notch-lifecycle.mjs:84
    mkdirSync(dirname(pidPath), { recursive: true })
  • 写入本地文件
    desktop/notch-lifecycle.mjs:86
    writeFileSync(stage, `${child.pid}\n`)
  • 写入本地文件
    desktop/notch-lifecycle.mjs:87
    renameSync(stage, pidPath)
  • 删除本地文件
    desktop/notch-lifecycle.mjs:114
    if (storedPID() === item.pid) { try { unlinkSync(pidPath) } catch {} }
  • 执行外部命令固定命令
    desktop/restart-probe.mjs:17
    const child = spawn('/bin/sleep', ['60']); await once(child, 'spawn'); return child
  • 写入本地文件
    desktop/restart-probe.mjs:29
    const writeOwner = child => writeFileSync(runtime, JSON.stringify({ pid: child.pid,
  • 执行外部命令来自配置/变量
    desktop/restart-probe.mjs:32
    const child = spawn(file, args, { ...options, env: { ...process.env, DSH_NOTCH_RUNTIME_FILE: runtime } })
  • 写入本地文件
    desktop/restart-probe.mjs:38
    writeFileSync(pidPath, String(old.pid))
  • 读取本地文件
    desktop/restart-probe.mjs:49
    assert.equal(Number(readFileSync(pidPath, 'utf8')), live[0].pid)
  • 删除本地文件递归
    desktop/restart-probe.mjs:59
    rmSync(root, { recursive: true, force: true })
  • 发起网络请求
    src/client/index.ts:62
    await fetch('/dsh-notch/sidebar', { signal: controller.signal, method: 'POST', headers: { 'content-type': 'application/json', 'x-dsh-notch-client': '1
  • 发起网络请求
    src/client/index.ts:65
    const response = await fetch('/dsh-notch/pending-focus', { cache: 'no-store', signal: controller.signal })
  • 读取本地文件
    src/dsh-notch.ts:32
    if (!existsSync(config.helperPath)) throw new Error('Configured Notch helper does not exist')
  • 写入本地文件
    src/dsh-notch.ts:34
    const log = createWriteStream(join(DIR, 'helper.log'), { flags: 'a', mode: 0o600 })
  • 写入本地文件
    src/store.ts:18
    mkdirSync(DIR, { recursive: true, mode: 0o700 })
  • 读取本地文件
    src/store.ts:23
    return JSON.parse(readFileSync(path, 'utf8')) as T
  • 写入本地文件
    src/store.ts:37
    writeFileSync(RUNTIME, `${JSON.stringify(file, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 })
  • 写入本地文件
    src/store.ts:48
    writeFileSync(SEEN, `${JSON.stringify(map)}\n`, { encoding: 'utf8', mode: 0o600 })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-home-paths@deepseek-ai/dsh@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-session@deepseek-ai/dsh-user-approval@deepseek-ai/dsh-user-questions@deepseek-ai/schemastery@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-ui-workspace@deepseek-ai/dsh-client-ui-session
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 显示DSH会话
  • 内联回答展示
  • 动态任务状态

README

由 DeepSeek 最新模型翻译生成
DSH Notch · English DSH Notch 是 DeepSeek Harness 的 macOS 插件。 它把真实会话的运行状态、待回答问题和未读结果放在屏幕边缘:查看任务、直接回答问题、点击回到对应会话;空闲时显示待机机器人。 插件包含两部分:装进 DSH 的 Host 插件负责同步会话,原生 Notch 程序负责显示和交互。下面的安装步骤会装好这两部分。 安装 DSH Notch 0.3.4 支持官方 DeepSeek Harness 0.2.0-rc.2。 从 npm 安装 dsh-notch@0.3.4 和 dsh-notch-focus@0.1.2。原生 macOS 程序继续使用 0.3.3,包含在下面的发布页中。本次只调整 npm 打包和安装说明,运行代码与 0.3.3 相同。
展开完整文档(README 剩余 1 节)
DSH Notch

· English

DSH Notch 是 DeepSeek Harness 的 macOS 插件。 它把真实会话的运行状态、待回答问题和未读结果放在屏幕边缘:查看任务、直接回答问题、点击回到对应会话;空闲时显示待机机器人。

插件包含两部分:装进 DSH 的 Host 插件负责同步会话,原生 Notch 程序负责显示和交互。下面的安装步骤会装好这两部分。

安装

DSH Notch 0.3.4 支持官方 DeepSeek Harness 0.2.0-rc.2。 从 npm 安装 dsh-notch@0.3.4 和 dsh-notch-focus@0.1.2。原生 macOS 程序继续使用 0.3.3,包含在下面的发布页中。本次只调整 npm 打包和安装说明,运行代码与 0.3.3 相同。

1. 下载发布包

从 v0.3.4 Release 下载:

| 文件 | 用途 |
| dsh-notch-0.3.4.tgz | Host 插件,提供状态、问题和原生程序连接 |
| dsh-notch-focus-0.1.2.tgz | 客户端同步助手,负责双向会话跳转与已读同步 |
| dsh-notch-0.3.3-macos-arm64.tar.gz | macOS 14+、Apple Silicon 原生程序及机器人资源 |
| SHA256SUMS | 下载校验;与上述文件放在同一目录后执行 shasum -a 256 -c SHA256SUMS |

预编译包无需 Swift 或 DSHX。其他架构需从源码构建,尚未提供验收过的预编译包。

2. 在 DSH 安装两个插件包

官方 Desktop: 在应用内插件管理页分别输入 dsh-notch@0.3.4 和 dsh-notch-focus@0.1.2,确认都已启用,按应用提示完成加载,再重新打开页面。Desktop profile 由应用管理。

Web: 对运行中的 Host 使用相同的 DSH_HOME,在下载目录执行:

dsh plugin --profile web add dsh-notch@0.3.4
dsh plugin --profile web add dsh-notch-focus@0.1.2

两个包都声明了官方 dsh.bundle.patch。按插件管理器的提示加载,并重新打开页面;不要再手工追加同名 insert。已有安装应更新原条目,避免 Bundle 与旧手动配置重复挂载。

Host 加载后生成 $DSH_HOME/dsh-notch/runtime.json。这是插件管理的私有连接文件,不需要填写或分享。找不到它时,先检查 Host 插件的加载错误。

3. 解压并启动原生程序

tar -xzf dsh-notch-0.3.3-macos-arm64.tar.gz
cd dsh-notch-0.3.3-macos-arm64
./dsh-notch --verify-idle-resources
./dsh-notch

资源检查应输出 IDLE_RESOURCES=10/10。首次运行请保持终端打开;如果已有桌面启动器管理 Notch,更新它使用的那份程序即可。移动时始终把 dsh-notch 和 DshNotch_DshNotch.bundle 放在一起。使用自定义 DSH_HOME 时,原生程序和 Host 必须指向同一 Home。

可在 Host 插件配置中把 helperPath 设为已解压的 dsh-notch 的绝对路径,让插件随 Host 管理辅助进程;配置后按应用的插件加载提示生效。请勿同时手工启动另一份。

4. 确认同步正常

- 正在运行的主会话显示蓝色计数;完成、失败或等待回答显示对应状态。
- 点击 Notch 的会话,DSH 打开对应对话。
- 在 DSH 前台打开已完成的会话,Notch 清除该条未读状态;仍在运行的任务继续保留。
- 全部结果读完后,Notch 回到机器人待机。

Notch 跟随连接文件中的 Host 进程退出。临时请求失败不会让它退出;只关闭窗口而 Host 仍在后台运行时,它会继续显示任务。桌面托管说明介绍了辅助程序的退出与快速重启联动。

使用

| 状态 / 操作 | 含义 |
| 蓝色数字 | 正在运行的会话数量 |
| 黄色感叹号 | 有待处理的问题或决定 |
| 绿色数字 | 未读的完成结果 |
| 红色数字 | 失败结果 |
| 点击问题选项 | 直接提交该选项;多选或多题按面板提示完成 |
| 点击问题标题 | 回到 DSH 查看完整上下文 |
| 全部结果读完 | 回到机器人待机 |
| 拖动 Notch 后松手 | 弹性收纳到屏幕边缘;再拖出即可恢复 |
| 隐藏时出现新完成、错误或待审批问题 | 自动弹回正常紧凑状态;同一提醒不会因轮询反复弹出 |

隐藏状态下,普通运行和尺寸更新不打扰你。鼠标正在拖动时收到新提醒,会先保持跟手,等松手再恢复。右侧系统 Dock 或显示工作区变化不会改变 Notch 对物理屏幕边缘的定位。

Notch 使用原生 AppKit / SwiftUI / Canvas 渲染。动画本身不调用模型。窗口随内容展开,达到屏幕高度上限后滚动;系统开启“减少动态效果”时呈现静态状态。

计数以用户的主对话为单位:workflow 和普通子代理(包括嵌套子代理)归到所属主对话,不会各自增加蓝色数字或生成完成、失败灯。后台子代理仍在工作时,主任务继续显示运行中;结果灯以主对话的最终结果为准。子代理需要你回答的问题会显示在主任务的黄色状态下,回答送回原请求,多个问题依次处理。用户手动 fork 出来的对话仍独立计数。

外部 Codex、Claude Code、ACP、DSH SDK 子代理转入官方后台任务后,也会归到所属主对话。Notch 只读取状态,不消费后台任务的完成通知。浏览器跳转和未加载会话的同步由 dsh-notch-focus 助手提供;已有安装保留原目录更新即可。入口、取消与恢复路径的检查范围见源码兼容性审计。

常见安装问题

| 现象 | 检查位置 |
| plugin add 成功,但没有 Notch | 第二步是否激活了 Host 插件,第三步是否启动了原生程序?两者都需要。 |
| 只有机器人,真实任务不出现 | Host 插件是否加载、runtime.json 是否生成、当前 Host 是否仍在运行? |
| 找不到 dsh-notch 模块 | 确认第一步和第二步使用同一个 DSH_HOME 与 web profile;本地源码目录不能删除或移动。 |
| IDLE_RESOURCES 少于 10/10 | 重新构建;移动程序时同时携带资源 bundle。 |
| 屏幕上出现两个 Notch | 检查是否同时启动了手动版本和 App 壳管理的版本,只保留预期的那一份。 |
| 更新源码后仍是旧效果 | 重新构建,并更新实际运行的可执行文件;只 git pull 不会替换已启动的原生进程。 |

若状态灯叠影、点击后才恢复,可按发生时间查看 ~/.dsh/dsh-notch/presentation.jsonl。日志只记录计数、动画阶段、布局和进程编号,不记录对话正文、标题或认证信息;达到 256 KiB 后轮换,只保留当前和上一份。刷新时会检查过期的转场并补做收尾,菜单交互期间也继续推进状态与布局计时器。

当前 Host 插件依赖 sessions、webServer、approval、userQuestions、agents 服务,面向同一台 Mac 上的 DSH Web Host。原生界面的会话跳转优先唤起官方 com.deepseek.dsh 桌面版,并保留旧 local.dsh.desktop 壳的兼容。多 Home、远程 Host 和各版本 DSH 的兼容性不能只凭安装成功判断。

更新与开发

更新已安装的源码后,重新构建原生程序。只改原生界面时,更新并重新启动 Notch 即可;若改了 src/ 下的 Host 插件代码,先 npm run build 更新 lib/index.mjs,再做对应的服务端热加载。

使用 dshx 的维护者可先执行 dshx activation-plan dsh-notch --change artifact 或 --change server,按实际修改范围更新。激活要匹配实际 Host 和挂载方式,不能把复制原生二进制当作 Host 模块热更新。

从源码构建 Host 和原生程序需要 Node.js 24、Swift 6 / Command Line Tools:

npm ci --ignore-scripts --legacy-peer-deps
npm run build
npm run build:macos

同步助手的源码构建需要 DSHX 0.9.2 和已备好依赖的 dsh-v0.2.0-rc.2 Harness checkout;步骤见助手说明。预编译发布包不需要这些开发工具。

开发检查:

npm ci --ignore-scripts --legacy-peer-deps
npm test
npm run test:outcome
npm run test:motion
npm run test:geometry
npm run test:scrollbar
npm run test:expanded-height
npm run test:host-lifetime
npm run test:idle
npm run build:macos

弹性收纳交互可在 独立原生预览 中试用;运行 npm run build:elastic-preview 构建,不连接 DSH、不调用模型,也不替换当前安装。

录屏 Demo(可选)

用于开发、检查动画或录制演示视频,不属于插件安装步骤:

npm run build:demo
open "dist/DSH Notch Demo.app"

Demo 提供 36 个中英双语场景,使用本地假任务,不连接 DSH。录屏控制与快捷键见 Demo 文档。

更多:动效说明 · 设计说明 · 0.3.3 更新记录 · 0.3.2 更新记录 · 0.3.0 更新记录 · 可选 App 壳诊断。

许可

MIT。机器人资源基于 OpenBotMotion,保留了原始 MIT 许可声明。这是社区维护的 DSH 插件。

官方桌面版的原生启动适配与验证见 0.1.7-rc.2 验证记录。DSH_NOTCH_RUNTIME_FILE 只指定连接文件,绝不触发演示偏移;演示使用显式的 --demo 或 --elastic-preview 入口。
预览分享卡片长什么样 ↓aa2246740/dsh-notch
分享 · DeepSeek Harness Hub
aa2246740/dsh-notch

macOS 原生刘海,显示 DSH 会话、内联回答和动态任务状态

这是你的仓库?认领条目

回到顶部