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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 入口。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
aa2246740/dsh-notch
macOS 原生刘海,显示 DSH 会话、内联回答和动态任务状态
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1
这是你的仓库?认领条目