侧边栏通知入口,agent 与 CLI 写入并实时查看
29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/yakoylp/dsh-localnotify.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 54 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-localnotify(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 15:34:53
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求lib/client.js:153
res = await fetch(`/dsh-localnotify/api/${method}`, { - 写入剪贴板lib/client.js:183
await navigator.clipboard.writeText(text); - 读取本地文件lib/store.js:56
text = await readFile(this.filePath, "utf8"); - 写入本地文件lib/store.js:88
await mkdir(join(this.filePath, ".."), { recursive: true }); - 写入本地文件lib/store.js:90
await writeFile(tmp, JSON.stringify(this.cache, null, 2), "utf8"); - 写入本地文件lib/store.js:91
await rename(tmp, this.filePath);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 侧边栏通知入口
- 全屏通知中心
- agent与CLI写入
展开完整介绍(167 字)↓
DSH 本地通知栏插件:侧边栏「通知」入口 + 全屏通知中心(时间筛选、搜索、未读已读、删除、详情一键复制),notify_add 智能体工具 + 命令行写入,JSON 持久化,实时刷新,界面跟随 dsh web 语言切换。DeepSeek Harness 的本地通知中心:notify_add 智能体工具与命令行、实时刷新、多语言。
README
由 DeepSeek 最新模型翻译生成dsh-localnotify
🌐 English: README.en.md · 🤖 AI Agent 使用手册: README.agent.md
CI
Version
License
DSH(DeepSeek Harness)本地通知栏插件:在 Web UI 侧边栏新增【通知】入口,点击打开全屏通知中心。通知以卡片形式展示(标题 + 正文单行预览),支持级别视觉分级、时间/来源筛选、标题/内容搜索、排序、未读/已读标记、删除;点击卡片弹出完整信息详情页并可一键复制标题/正文。通知由 agent 工具(notify_add)或 CLI(dsh-localnotify)写入本地 JSON 文件,页面实时刷新,全程本地、无外部服务。
典型场景:任务完成后由 agent 写一条通知提醒你,你在通知栏随时回看;脚本/定时任务也可通过 CLI 直接投递。
展开完整文档(README 剩余 1 节)
dsh-localnotify
🌐 English: README.en.md · 🤖 AI Agent 使用手册: README.agent.md
CI
Version
License
DSH(DeepSeek Harness)本地通知栏插件:在 Web UI 侧边栏新增【通知】入口,点击打开全屏通知中心。通知以卡片形式展示(标题 + 正文单行预览),支持级别视觉分级、时间/来源筛选、标题/内容搜索、排序、未读/已读标记、删除;点击卡片弹出完整信息详情页并可一键复制标题/正文。通知由 agent 工具(notify_add)或 CLI(dsh-localnotify)写入本地 JSON 文件,页面实时刷新,全程本地、无外部服务。
典型场景:任务完成后由 agent 写一条通知提醒你,你在通知栏随时回看;脚本/定时任务也可通过 CLI 直接投递。
功能特性
- 侧边栏【通知】入口:铃铛图标 + 未读数量徽标(折叠态红点角标),位于左侧栏底部 Settings 旁,不遮挡现有 UI
- 全屏通知中心(shell.overlay,独立于任何会话):
- 卡片列表:标题 + 正文单行预览(超长省略号),未读卡片带级别色左边框与圆点,高度紧凑
- 级别视觉分级:info(品牌色) / success(绿) / warn(黄) / error(红),卡片与详情页显示级别标签,未读扫一眼即知轻重缓急
- 分页浏览:底部工具条「每页 10/20/50/100」(默认 20)+ 上一页/下一页翻页(显示 共 N 条 · 第 x/y 页),只渲染当前页卡片
- 时间筛选:全部 / 今天 / 近7天 / 近30天
- 来源筛选:按通知来源(agent / cron / cli 等,自动汇总)过滤
- 排序切换:最新优先 / 最旧优先 / 未读优先
- 标题 + 内容搜索:实时过滤(不区分大小写)
- 详情弹层:点击卡片弹出完整信息(完整时间 / 级别 / 来源 / 已读状态 + 全文),右下角一键复制标题、正文或全部(点击后按钮显示「已复制 ✓」),打开详情时自动标记已读
- 顶部「全部已读」;卡片「删除」带两步确认(防误删)
- 点关闭按钮或遮罩空白处退出
- 实时刷新:页面打开时每 3 秒轮询,关闭时每 30 秒保持徽标同步(agent/CLI 写入后几秒内可见)
- 主题适配:全部使用 DSH 官方主题 token(--dsw-alias-),明暗主题自动跟随
- 多语言:界面文案跟随 dsh web 语言自动切换(zh / en,切换实时生效)
- 自动清理:可选设置保留天数,超期通知随每次写入自动删除(默认关闭,500 条上限始终兜底)
- 写入方式(无页面新增入口,保持界面纯净):
- agent 工具:对话中由 agent 调用 notify_add 写通知(支持 level 分级)
- CLI:dsh-localnotify add "标题" -b "正文" [--level success],适合脚本/定时任务
数据存储
通知保存在 ~/.dsh/notify/notifications.json(DSH_HOME 环境变量优先),结构:
{
"version": 2,
"notifications": [
{
"id": "n_mtisij3d_q32zcn",
"title": "任务完成", "body": "转换结果已生成,共 23 页。", "createdAt": 1788274582825, "read": false, "source": "agent", "level": "success" } ],
"settings": { "retainDays": 0 }
}
- level: info | success | warn | error(旧数据无此字段按 info 显示)
- settings.retainDays: 自动清理保留天数;0=永久保留(默认);>0 时每次写入自动删除超过该天数的通知(可经 CLI config --retain-days 设置,版本 1 旧文件读入后自动升级到 version 2)
- 写入为原子替换(临时文件 + rename),不会出现半截文件
- 文件缺失或损坏时按空库处理,绝不覆盖原文件
- 单进程内写操作串行化;最多保留 500 条,超出自动裁剪
- 文件透明可读,可手动编辑、备份、随 ~/.dsh 整体迁移
安装
方式一:GitHub 仓库(推荐)
dsh plugin --profile web add github:yakoylp/dsh-localnotify
方式二:本地目录开发安装
先把仓库克隆(或解压源码包)到任意目录,再用该目录安装:
git clone https://github.com/yakoylp/dsh-localnotify.git
dsh plugin --profile web add ./dsh-localnotify # macOS / Linux
dsh plugin --profile web add "C:\path\to\dsh-localnotify" # Windows(换成实际路径)
安装后重启 dsh web(客户端 bundle 由 web 服务在启动时加载)。重启后侧边栏底部出现 🔔【通知】入口即为成功;可用 dsh-localnotify add "测试" 投递一条验证。
CLI 用法
dsh-localnotify add "任务完成" -b "转换结果已生成" # 新增通知 dsh-localnotify add "提醒" --source cron --level warn # 指定来源与级别 dsh-localnotify add "部署成功" --level success # 级别: info/success/warn/error dsh-localnotify list # 列出( 为未读; [E]/[W]/[OK] 为级别标记) dsh-localnotify list --unread # 仅未读 dsh-localnotify list --level error # 仅错误级 dsh-localnotify list --json # JSON 输出(脚本友好) dsh-localnotify read n_xxxx # 标记单条已读 dsh-localnotify read --all # 全部已读 dsh-localnotify delete n_xxxx # 删除 dsh-localnotify config [--retain-days 7] # 查看/设置自动清理保留天数(0=永久) dsh-localnotify prune # 按 retain-days 立即清理一次 dsh-localnotify --help # 帮助 dsh-localnotify --file /path/to/notifications.json add ... # 覆盖存储路径
CLI 直接读写同一个 JSON 文件,不依赖 cordis 运行,可在任何终端/脚本/cron 中使用。
Agent 工具
插件注册 notify_add 工具,agent 在对话中调用即可写入通知(自动校验:标题必填 ≤200 字、正文 ≤5000 字)。例如任务完成时,agent 会调用:
notify_add(title: "文档转换完成", body: "23 页扫描件已转为 Markdown,输出于 ...", level: "success")
level 为可选枚举 info | success | warn | error,用于视觉分级:任务成功用 success、失败/出错用 error、需要用户注意用 warn、一般消息省略(默认 info)。
通知提交路径(agent / 脚本如何投递)
| 方式 | 使用者 | 前提 |
| notify_add 工具 | DSH agent(同一 profile) | 插件已安装即自动注册;agent 在工具列表中看到该工具并按其描述在任务完成等场景调用,无需额外配置 |
| dsh-localnotify CLI | 脚本 / cron / 终端 | 插件已安装(bin 链接到 profile 的 node_modules/.bin);或直接 node /lib/cli.js |
| 直接写 JSON 文件 | 任意程序 | 按上文文件格式写入 ~/.dsh/notify/notifications.json,页面 3s 内可见 |
说明:notify_add 工具对安装了插件的同一 DSH 环境(profile)内的 agent 可见;其他环境/agent 需各自安装插件才能用工具投递,但 CLI 与文件写入不受环境限制。
HTTP API
Host 半区注册同源路由 POST /dsh-localnotify/api/(仅 DSH 自带 web 服务可达),请求/响应均为 JSON,响应包裹 { ok, value } 或 { ok: false, error: { code, message } }:
| 方法 | 参数 | 说明 |
| list | {} | 返回 { notifications, storagePath } |
| markRead | { id } | 标记单条已读 |
| markAllRead | {} | 全部已读 |
| delete | { id } | 删除单条 |
架构
- Node 半区(cordis.patch.yml 挂载,lib/index.js):注册 notify_add 工具(ctx.tools.register)与 /dsh-localnotify/api/ 路由(ctx.webServer.register,prefix 匹配);存储逻辑在 lib/store.js(Host 与 CLI 共用)
- 浏览器半区(dsh.client + exports["./client"] → lib/client.js):手工编写的 ModuleLoader bundle(window.__ModuleLoader__.load({ id, factory }),与官方 tsdown 产物同格式,仅依赖基线外部模块 react);通过 ctx.slots.inject/register 注册 sidebar.footer.action(入口)与 shell.overlay(通知中心),数据走同源 fetch 调 Host API
- 主题:颜色全部引用 DSH 主题 token(--dsw-alias-bg- / --dsw-alias-label- / --dsw-alias-border- / --dsw-alias-brand-primary 等)
开发
bash
node --test # 运行全部测试(store 存储层 + API handler + CLI 端到端)
node lib/cli.js --file ./tmp-notify.json add "测试" -b "正文" --level success
node lib/cli.js --file ./tmp-notify.json list
node lib/cli.js --file ./tmp-notify.json config --retain-days 7
常见问题(排障)
- 侧边栏入口可见,但通知中心列表为空:先直测 Host 路由是否注册——curl -X POST http://127.0.0.1:/dsh-localnotify/api/list -H "Content-Type: application/json" -d "{}"。若返回 405(空 body),说明 Host 路由未注册,请升级到 ≥1.1.0(1.0.0 存在 inject 缺 webServer 导致路由静默失效的问题);若返回 { ok:true, value: { notifications, ... } } 则路由正常,检查存储文件是否有数据
- 多条通知被压成细条、无滚动条:1.0.0 的 flex 布局缺陷,升级到 ≥1.1.0(卡片已禁止 flex 压缩,列表容器可正常滚动)
已知限制与后续
- 通知中心为全屏浮层(非独立路由页面),关闭后回到原会话 —— 设计取舍:保持轻量,不占导航
- 实时性依赖轮询(打开 3s / 关闭 30s),未做 Host→Client 推送。轮询成本极低(同源小请求),且不依赖额外事件通道;如未来 DSH 提供推送通道再评估升级
- 多进程同时写(如 CLI 与 Host 并发)依赖原子 rename,极端并发下后写者胜出。通知场景写入频率低,该语义足够安全(单进程内写已串行化);若未来出现高频并发写入需求再引入文件锁
- 文件被外部工具修改时,以读取时内容为准(页面 3s 内可见)
测试与 CI
- 测试覆盖三层:存储层(新增/校验/级别/自动清理/旧文件兼容/损坏兜底/500 上限)、HTTP API(方法分发/错误包裹/读写联动)、CLI(spawn 端到端:add/list/read/delete/config/prune/错误路径)
- GitHub Actions 在 Node 18 / 20 / 22 上自动运行全部测试(.github/workflows/test.yml)
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yakoylp/dsh-localnotify
侧边栏通知入口,agent 与 CLI 写入并实时查看
相关插件 · 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,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目