在右侧栏按账号汇总未读邮件,随时手动刷新查看
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Feizhaiqianqian/dsh-email-board该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 28 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:193
const res = await fetch(ROUTE + (force ? "?force=1" : ""), { credentials: "same-origin", signal });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按账号汇总未读邮件
- 右侧栏卡片列表
- 手动刷新查看
DeepSeek Harness 邮件看板插件:把 dsh-email 各账号的未读邮件汇总成右侧栏卡片列表,按账号分卡片展示未读邮件。
README
由 DeepSeek 最新模型翻译生成dsh-email-board
DSH 的邮件看板:把 dsh-email 各账号的未读邮件按账号汇总成卡片列表,展示在 Web 界面右侧栏的「邮件看板」tab 里。卡片显示发件人、主题与时间。
Unread-mail board for DeepSeek Harness.
It collects unread mail from every dsh-email account into a per-account card list
(sender / subject / time) rendered as a custom tab in the DSH right sidebar — read-only, manual refresh, and no model round-trip (it reuses dsh-email's own IMAP pool).
- 只读:不会标记已读、不会删除、不会发信。
- 不经过模型、不调用工具:宿主侧取的就是 email_list 的实现
(EmailPool.list(..., unreadOnly: true)),所以刷新不消耗 token,也不会在会话里留下痕迹。
- 手动刷新:打开 tab 拉一次,之后只有点右上角「刷新」才会重新读邮箱;宿主侧还有一层短路缓存(cacheMs),连点也不会把 IMAP 打爆。
展开完整文档(README 剩余 1 节)
dsh-email-board DSH 的邮件看板:把 dsh-email 各账号的未读邮件按账号汇总成卡片列表,展示在 Web 界面右侧栏的「邮件看板」tab 里。卡片显示发件人、主题与时间。 Unread-mail board for DeepSeek Harness. It collects unread mail from every dsh-email account into a per-account card list (sender / subject / time) rendered as a custom tab in the DSH right sidebar — read-only, manual refresh, and no model round-trip (it reuses dsh-email's own IMAP pool). - 只读:不会标记已读、不会删除、不会发信。 - 不经过模型、不调用工具:宿主侧取的就是 email_list 的实现 (EmailPool.list(..., unreadOnly: true)),所以刷新不消耗 token,也不会在会话里留下痕迹。 - 手动刷新:打开 tab 拉一次,之后只有点右上角「刷新」才会重新读邮箱;宿主侧还有一层短路缓存(cacheMs),连点也不会把 IMAP 打爆。 安装 先确认 dsh-email 已启用并配好账号(看板读它的设置)。 克隆本仓库,然后在 DSH 的「插件」页安装这个目录(安装框接受绝对路径): <克隆下来的 dsh-email-board 目录绝对路径> 安装器会执行 pnpm add <路径> 并把 dsh-email-board 追加到 profile 的 dsh.profile.bundles。 重启 DSH 之后,右侧栏开始页里就有「邮件看板」入口了。 手动安装等价于: cd $env:DSH_PROFILE_DIR # 例如 C:\Users\<你>\.dsh\profiles\desktop pnpm add file:<dsh-email-board 绝对路径> 然后把 "dsh-email-board" 追加到 package.json 的 dsh.profile.bundles 里 开发这个插件时踩过的两个坑(想改源码的话建议先看) 1. file: 是快照,不是活链接。 pnpm add file:<目录> 会把文件拷贝进 node_modules\dsh-email-board(真实目录),之后你在源码目录里的改动永远不会进宿主进程,重启多少次都一样。要在源码目录里持续开发,就把依赖写成 link:<绝对路径>(等价于手工建 junction),让 profile 读活文件: package.json: "dsh-email-board": "link:C:/.../dsh-email-board" New-Item -ItemType Junction -Path "$env:DSH_PROFILE_DIR\node_modules\dsh-email-board" -Target "C:\...\dsh-email-board" 2. 改代码一定要重启 DSH。 宿主进程里的插件模块 import 一次就缓存住了;改 profile 配置(bundle 列表、patch 层)只会重载配置树,不会让宿主重新 import 模块。桌面版 base 组合包以 hmr.root: [] 启用 HMR,等于关掉了模块文件监听,所以也没有代码热重载可指望。 打开看板 1. 打开右侧栏(会话 header 右上角的展开按钮,或快捷键)。 2. 在开始页里点「邮件看板」入口胶囊 —— tab 就此打开,之后跟着会话布局一起保存。 配置 在 profile 的 cordis.patch.yml 里覆盖插件的默认行: - id: email-board name: dsh-email-board config: accounts: [] # 空数组 = dsh-email 里配置的全部账号 folder: "" # 空 = 各账号自己的 inboxFolder perAccountLimit: 20 # 每个账号最多取多少封未读信封(1-100) cacheMs: 20000 # 宿主侧结果缓存,毫秒(连点刷新时的短路窗口) timeoutMs: 25000 # 单账号 IMAP 超时,毫秒 accounts 里的名字必须和 dsh-email 设置里的账号名一致;填了不存在的名字不会让整块看板失败,只会让那个账号的位置显示一条错误。 实现 | 半侧 | 文件 | 职责 | | 宿主 | lib/index.js | 读 dsh-email 的设置行 → 用它公开导出的 resolveEmailSettings / toEmailConfig / EmailPool 取每个账号的未读信封 → 挂在同源只读路由 /_dsh/dsh-email-board/state | | 客户端 | lib/client.js | 注册右侧栏 tab 类型 email-board 与正文槽位 sidebar.right.pane.tab,按需读路由并渲染卡片 | 设计上的两个要点: - 不复制 dsh-email 的内部实现,只用它 package.json 里公开导出的 API,所以它升级内部结构不会连带打断看板。插件被链接进 profile 时,dsh-email 的解析会退回 profile 的 node_modules (见 profileDirCandidates)。 - 设置行按「显式候选 → 形状识别」两级查找:settings.describe() 的 ns 用的是 profile 条目 id(通常是 tool-email),不一定等于 dsh-email 自己注册的命名空间,写死名字必然踩空。 只读路由带同源判定:Sec-Fetch-Site 不是 same-origin/none 一律 403,非 GET 一律 405 ——未读邮件的标题和发件人是隐私,不该被任意网页一次 GET 读走。 自检 pnpm check # node --check lib/index.js && lib/client.js pnpm test # 迷你 React 跑一遍客户端注册 + 渲染(用随仓库的虚构样本,零依赖) pnpm test:host # 真实 IMAP:解析账号 → 取未读 → 路由响应(需要本机 profile 与 dsh-email) node test/offline-route.mjs --fixture # 把真机响应写到 test/fixture-state.local.json test/render-board.mjs 优先读 test/fixture-state.local.json,没有就用随仓库发布的 虚构样本 test/fixture-state.json;*.local.json 在 .gitignore 里,真实邮件数据不会被误提交。 已知限制 - 只统计各账号 inboxFolder(或 folder 指定的那一个)里的未读,不遍历全部文件夹。 - 单个账号未读超过 perAccountLimit 时只显示最新若干封,并在分组里标注「只显示最新 N 封」。 - 卡片只读,想看正文仍然用会话里的 email_read。 - 没有定时轮询(刻意留到界面稳定后再加,客户端补一个 setInterval 即可)。 版本 - v0.1.0(2026-10-07):首个版本 —— 手动刷新的右侧栏看板。完整说明见 CHANGELOG.md。 - 路线:界面稳定后再加自动更新(定时轮询);卡片交互(标记已读 / 打开正文)待定。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Feizhaiqianqian/dsh-email-board
在右侧栏按账号汇总未读邮件,随时手动刷新查看
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目