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

Outlook 本地助手 UnknowCao/dsh-outlook

DeepSeek Harnessv2.6.1
UnknowCao51 天前有提交已提供中文文档扫描:含敏感能力

让 AI 直接读写你桌面 Outlook 的邮件与日程

30.1/100
综合分
1
GitHub 星标
212
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-outlook
npm 源 · dsh-outlook 的发布者账号已校验与本仓库一致

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-outlook @ 2.6.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 16:39:42

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

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    index.js:46
    try { size = statSync(WATCH_LOG).size } catch { }
  • 写入本地文件
    index.js:47
    if (size > WATCH_LOG_MAX) writeFileSync(WATCH_LOG, '')
  • 写入本地文件
    index.js:48
    appendFileSync(WATCH_LOG, new Date().toISOString() + ' ' + message + '\n')
  • 执行外部命令固定命令
    index.js:82
    const child = spawn('powershell', [
  • 读取本地文件
    index.js:169
    try { st = statSync(p) } catch { return { error: 'attachment not found: ' + p } }
  • 执行外部命令固定命令
    index.js:214
    child = spawn('powershell', [
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 读写桌面邮件
  • 读写日程
v2.11.02026-09-14
为什么:agent 在会话里贴的 打开 markdown 链接走 GET 导航——每点一次就多出一个"已在 Outlook 中打开 / 此页面可关闭"的标签页,最常用的"看一眼这封邮件"动作反而在浏览器里留下一排垃圾标签。同时该链接硬编码 127.0.0.1:3080,自定义端口部署时点击直接连接失败(README 已列为已知边界)。 改了什么: · client 半新增捕获阶段点击拦截:普通左键点击路径名为 /olk-notify/open 且带 entryId 的锚点时,按匹配 pathname 而非完整 URL 识别(任意端口都命中),改为同源 POST——与侧边栏弹层完全相同的已验证通道——Outlook 弹窗打开邮件,零新标签页,页面底部给出 2.6s toast 反馈(成功含主题,失败含错误并 beacon 上报)。这同时修复了自定义端口部署的链接失效边界:拦截后总是打向页面自身 origin。 · GET 导航降级整体移除:/olk-notify/open 改为 POST-only JSON 路由,结果页("此页面可关闭")、关闭按钮全部删除——正常路径不再产生标签页,就没有必要维护第二形态的降级面。修饰键/中键点击该链接会得到 405(有意行为)。GET 非法 entryId 曾误返 500 的问题随 GET 分支一并消失。 · 拦截监听器与 toast 均注册在 fiber effect 中,插件停用/更新时自动移除(监听器、定时器、DOM 三者都清理)。 · pending 队列清理/角标减 1 逻辑不变:侧边栏与聊天链接现在走完全相同的 POST 处理器。 实测:POST 路由 {"ok":true}、非法 entryId 400、真实会话点击(无新标签页 + Outlook 弹窗)均已通过;测试用例更新至 49 项(新增 H 组 6 项)。
v2.6.12026-09-09
· dsh-outlook v2.6.1 — 首个公开发布 在 IT 不给你 Graph API 权限的公司电脑上,让 AI 直接操作你正在用的 Outlook。 零凭据 · 零管理员权限 · 发任何东西都先问你。 · 安装 dsh plugin --profile web add 前置:Windows + 经典桌面版 Outlook(已登录)+ PowerShell 5.1(系统自带)。无第二步。 · 这个版本包含什么 · 13 个 AI 工具:搜信/读信/草稿/发信/回复转发/日历查询与创建/通讯录/忙闲/会议室/附件保存/新邮件推送 · 侧边栏角标:新邮件红色计数(展开态外置角标、收起态圆钮内红点),点击弹层预览 · 三层人审门:两轮确认协议 + 内容哈希绑定(防"展示 A 发送 B"偷换,已实测拦截)+ 桥接层一次性令牌 · 槽位化客户端:通过 sidebar.footer.action 正规槽位接入,与鲸湾菜单同容器共存 · 33 个测试用例(TESTCASES.md),自动化项全部实测通过 · COM 怪癖全编码:Jet/DASL 双阶段过滤、本地化文件夹、PS 5.1 stdin UTF-8 等(见 lib/olk.ps1 头注释) · 2.6.0 → 2.6.1 要点 · 收起侧边栏时角标改为圆钮内红点,杜绝被裁剪 · 深度 review 修复 14 项(详见 CHANGELOG.md) · 已知边界 · 仅 Windows 经典版 Outlook(不支持新版 UWP/网页版-only 环境) · /olk-notify/* 状态路由仅监听 127.0.0.1 且不校验浏览器 cookie(本机进程可读新邮件主题) · 多浏览器标签页共享同一待读队列
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-outlook 在 IT 不给你 Graph API 权限的公司电脑上,让 AI 直接操作你正在用的 Outlook。 零凭据 · 零管理员权限 · 发任何东西都先问你。 DSH Plugin Platform License: MIT Tools 面向 Windows 上 AI 智能体的零凭据 Outlook 自动化:通过 COM 驱动你本地的桌面 Outlook 客户端。无需 Graph API 应用注册、无需 SMTP 密码、无需租户管理员权限——任何离开本机的内容都要通过三层人工审批关卡。 你什么时候需要它? 1. 公司电脑装了经典版 Outlook,但 IT 不让你注册 Azure 应用——所有 Graph API 方案(outlook-mcp 等)第一步就死在 app registration 上,这个插件不需要:它直接驱动你已经登录的桌面客户端。 2. 想让 AI 当邮件秘书:早上到工位问一句“有什么新邮件”,它读给你听;说“回复这封,就说周三可以”,它起草、引用原文、弹窗给你过目后发出。 3. 要约会议但不知道谁有空:一句话查同事 free/busy、搜会议室空闲时段,邀请发出前同样先给你确认。 它会交付什么?
展开完整文档(README 剩余 1 节)
dsh-outlook

在 IT 不给你 Graph API 权限的公司电脑上,让 AI 直接操作你正在用的 Outlook。
零凭据 · 零管理员权限 · 发任何东西都先问你。

DSH Plugin Platform License: MIT Tools

面向 Windows 上 AI 智能体的零凭据 Outlook 自动化:通过 COM 驱动你本地的桌面 Outlook 客户端。无需 Graph API 应用注册、无需 SMTP 密码、无需租户管理员权限——任何离开本机的内容都要通过三层人工审批关卡。

你什么时候需要它?

1. 公司电脑装了经典版 Outlook,但 IT 不让你注册 Azure 应用——所有 Graph API 方案(outlook-mcp 等)第一步就死在 app registration 上,这个插件不需要:它直接驱动你已经登录的桌面客户端。
2. 想让 AI 当邮件秘书:早上到工位问一句“有什么新邮件”,它读给你听;说“回复这封,就说周三可以”,它起草、引用原文、弹窗给你过目后发出。
3. 要约会议但不知道谁有空:一句话查同事 free/busy、搜会议室空闲时段,邀请发出前同样先给你确认。

它会交付什么?

18 个 AI 工具(读操作自动执行;任何外发动作必须过确认弹窗):

| 工具 | 功能 | 守门 |
| outlook_check_new | 新邮件到达推送(侧边栏角标同步) | 只读 |
| outlook_search_mail | 搜邮件(天数/文件夹/发件人/主题/日期区间/收件人侧),结果可贴点击打开链接 | 只读 |
| outlook_read_mail | 读全文(正文/收件人/附件名,超长截断) | 只读 |
| outlook_open_mail | 在桌面 Outlook 窗口中打开邮件(标记已读、角标减 1) | 本地动作 |
| outlook_account | 当前账户名/SMTP | 只读 |
| outlook_draft_mail | 建草稿(永不发送,可带附件) | 安全 |
| outlook_send_mail | 发邮件 | 三层人审 |
| outlook_reply_mail | 回复/全部回复/转发(自动引用原文,转发带原附件) | 三层人审 |
| outlook_calendar_query | 未来 N 天日程(含例会展开) | 只读 |
| outlook_calendar_create | 个人日程直接建;带参会人则发邀请 | 邀请需人审 |
| outlook_meeting_requests | 待响应的会议邀请列表 | 只读 |
| outlook_respond_meeting | 接受/暂定/拒绝会议邀请 | 人审(通知组织者) |
| outlook_meeting_update | 改日程/会议(组织者自动通知参会人) | 人审 |
| outlook_meeting_cancel | 取消会议(通知参会人)/删个人日程 | 人审 |
| outlook_search_people | 通讯录(GAL)搜人名/邮箱/别名 | 只读 |
| outlook_freebusy | 同事忙闲时段(30 分钟粒度) | 只读 |
| outlook_search_rooms | 会议室搜索 + 指定时段空闲检查 | 只读 |
| outlook_save_attachment | 附件保存到本地(防路径穿越、不覆盖同名) | 本地写 |

外加一个侧边栏角标:新邮件到达时 Outlook 按钮出现红色计数,点击弹层列出最新到达;点击弹层中的邮件可直接在 Outlook 中打开(自动标记已读、角标减 1),悬停预览。会话聊天里的 [打开] markdown 链接同样点击即开:插件在页面内拦截左键点击并原地触发(无新标签页,页面底部 toast 提示)。

| 展开态(外置角标) | 收起态(圆钮内红点) |
| expanded sidebar badge | collapsed rail badge |

快速开始

npm 短名安装(推荐)
dsh plugin --profile web add dsh-outlook
或直接从 GitHub
dsh plugin --profile web add https://github.com/UnknowCao/dsh-outlook

然后重启 profile(或依赖 patchReload: live)。没有第二步——不配置凭据、不注册应用、不改 Outlook 设置。

前置条件:Windows + 经典桌面版 Outlook(Win32 OUTLOOK.EXE)已登录 + Windows PowerShell 5.1(系统自带)。无需租户管理员权限。

触发方式(装完试着说)

- “有什么新邮件?”
- “搜一下上周张三发的关于交付物的邮件”
- “把这封转给李四,附言说请他确认”
- “帮我约下周三和王五的会,先看看他什么时候有空”
- “找一间明天下午两点到三点空闲的宁波会议室”

它和同类方案有什么不同?

| | dsh-outlook | Graph API 类(outlook-mcp 等) | SMTP 类(mcp-server-email) |
| 需要注册 Azure 应用 | ❌ 不需要 | ✅ 必须(企业常被 IT 锁死) | ❌ |
| 需要邮箱密码/凭据 | ❌ | OAuth token | ✅ SMTP 密码 |
| 读你“正在用的”客户端状态(未读/规则/本地文件夹) | ✅ | 部分 | ❌ |
| 外发前人工确认 | 三层门(见下) | 视实现 | 视实现 |
| 平台 | 仅 Windows 经典版 | 任意 | 任意 |

安全边界

任何离开这台机器的动作——发邮件、发会议邀请——都要过三道互相独立的门:

1. 两轮确认协议:第一次调用只返回“将要发送什么”的明细,AI 必须原样展示给你、你明确允许后,带 confirmed:true 重试才执行;
2. 内容哈希绑定:确认时展示的内容与最终发送的内容做 SHA-256 比对——给你看 A、实际发 B 的偷换在 host 层即被强制退回重新确认;
3. 桥接层令牌:PowerShell 桥独立拒绝一切没有一次性 OLK_CONFIRM 令牌的发送路径——即使未来某个 bug 或新工具绕过前两层,令牌不出,邮件不发。

它不会做的事:不静默发送任何内容;不保存/不回传邮箱凭据(根本不接触);草稿永不自动发送;附件保存拒绝路径穿越、拒绝覆盖已有文件。

已知边界:/olk-notify/* 路由仅本机可达并做同源校验(非浏览器/导航类请求与其它本机进程仍可读新邮件主题元数据);会话内“点击打开”链接里的端口不影响普通左键点击(client 按路径名拦截后向页面自身 origin 发送);/olk-notify/open 为 POST-only,修饰键/中键点击聊天链接会得到 405(有意行为,outlook_open_mail 工具不受影响);多标签页共享同一待读队列;用 OLK_WATCH=0 环境变量可关闭新邮件监听。

文件结构

index.js 宿主半:18 个工具注册、两轮确认、内容哈希、watcher 管理、状态/打开路由 client.js 浏览器半:sidebar.footer.action 槽位按钮、角标、弹层(React Portal,点击打开) lib/olk.ps1 COM 桥:全部 Outlook 操作 + 令牌门 + 本地化怪癖(见文件头注释) lib/watch.ps1 NewMailEx 常驻监听:推送新邮件到达,崩溃 30s 自愈 cordis.patch.yml 宿主行声明 TESTCASES.md 49 个测试用例(链路/渲染/共存/路由/点击打开/链接拦截/已知边界) CHANGELOG.md 版本叙事(为什么改)

诊断日志:%TEMP%\dsh-outlook-watch-debug.log(1MB 自动截断轮转)。

验证与测试

- 49 个用例覆盖全链路(TESTCASES.md),自动化项全部通过实测:新邮件推送→角标→清空、watcher 强杀 30s 自愈、两种确认偷换攻击拦截、路由 405/413、日志轮转截断、打开即已读、GBK 代码页回归、聊天链接点击拦截(v2.11.0 H 组);
- COM 怪癖(Jet/DASL 双阶段过滤、Restrict 日期格式、IncludeRecurrences 的 MaxInt 计数、PS 5.1 stdin 编码)全部编码在 lib/olk.ps1 并经真实 Exchange 环境验证。
预览分享卡片长什么样 ↓UnknowCao/dsh-outlook
分享 · DeepSeek Harness Hub
UnknowCao/dsh-outlook

让 AI 直接读写你桌面 Outlook 的邮件与日程

这是你的仓库?认领条目

回到顶部