前言¶
DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,官方仓库把它概括成一句话:一切皆插件。模型适配、工具、会话、沙箱,甚至网页界面,都可以挂成插件。目前项目仍处于开发者预览阶段,接口会继续变;社区里已经出现一批独立目录站点,把 GitHub 上带 dsh-plugin 话题的仓库集中展示。需要说明的是,这类目录与 DeepSeek / 幻方没有官方从属关系,安装命令仍以各插件仓库和目录页原文为准。
很多人把 dsh web 开一整天:一边跟模型改代码,一边把飞书日历丢在别的窗口。会前几分钟才想起来,或者干脆错过。dsh-lark-meeting-notifier 做的事情很窄:不给模型增加工具,只在网页工作区右侧挂一块会议列表,到点闪烁。仓库自己的说法是「一个只有副作用的插件」——副作用就是提醒你该去开会了。
这是什么¶
dsh-lark-meeting-notifier 是一款面向 DeepSeek Harness Web 界面的通知类插件,由 yeruizhi 维护,采用 MIT 许可证,主要语言是 JavaScript。社区目录把它归在「通知与集成」。截至 2026-08-18,GitHub 仓库显示 7 星,目录页上的数字是 6;星标会变,以仓库页面为准。package.json 里的版本是 0.1.0。
它解决的问题很具体:在 dsh web 里列出今天还没开始的飞书会议,并按你设定的提前量反复提醒。数据不走自定义后端,而是调用飞书官方 CLI @larksuite/cli(命令名 lark-cli),以当前登录的用户身份读个人日历。点「✕」只会在本机隐藏这条提醒,不会改飞书日程。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-lark-meeting-notifier/
GitHub:https://github.com/yeruizhi/dsh-lark-meeting-notifier
核心功能¶
仓库 README 和源码对得上的能力如下。
1、右侧悬浮框。默认收成一颗「🕐 会议 N」胶囊,N 是今天剩余、且未被本机隐藏的条数。点开后列出时间段、标题、组织人、会议室。若日程带视频会议链接,标题可点开。
2、会议室名。不是手填,而是从飞书日历里 type=resource 的参会人读取 display_name。设置里可以选「完整」或「简短」(简短时取空格前第一段)。
3、多闹钟。每个提前量是独立闹钟。默认 20、10、5 分钟;设置面板还可勾选 1、2、3、15、30、45、60 分钟。到点后条目闪烁,紧迫度越高颜色越偏橙、红。
4、关掉当前闹钟,而不是删掉日程。闪烁时点这条会议,等于关闭已经触发的提醒。也可打开「30 秒后自动停止闪烁」。单条右侧的「✕」会把该会议从本机列表里拿掉,并写进本地存储,飞书日历本身不动。
5、到点自动展开。提醒触发时可以自动把面板拉开(可关)。开始时间已过的会议会从「今日剩余」里消失;今天清空后,面板头部会出现「明日」,用来加载明天的会议。
6、配置持久化。在 DeepSeek Harness 设置里有一节「飞书会议提醒」,刷新间隔可选 30 / 60 / 120 秒,默认 30 秒。
它不会向模型注册工具,也不会在飞书里发消息。目录里同分类还有 dsh-lark(飞书对话通道)、dsh-notification(回合结束桌面通知)等,职责不同,不要混成一个东西。
安装与启用¶
社区目录页给出的安装命令是:
dsh plugin add github:yeruizhi/dsh-lark-meeting-notifier
GitHub README 写的是带 web profile 的写法,和 package.json 里 dsh.client.platform 为 "web" 一致。实际使用网页界面时,建议按仓库说明装到 web profile:
dsh plugin --profile web add github:yeruizhi/dsh-lark-meeting-notifier
目录页同时提醒:如需可复现安装,应固定 commit 哈希。写作时仓库 main 最新提交是 65782f8d13f79143af86fec1628dfa0918af335f(2026-08-17,修复桌面应用里找不到 lark-cli 的 PATH 问题)。固定安装可以写成:
dsh plugin --profile web add github:yeruizhi/dsh-lark-meeting-notifier#65782f8d13f79143af86fec1628dfa0918af335f
装完后重启 dsh web(或 npx @deepseek-ai/dsh web)。官方仓库说明 Web UI 默认在 http://127.0.0.1:3080。页面右侧应出现「🕐 会议」胶囊。
插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前请自己看一遍源码和 MIT 许可证。
前置条件:lark-cli¶
插件自己不实现飞书 OAuth,日历全部交给 lark-cli。仓库给出的步骤如下。
1、安装 CLI
npm install -g @larksuite/cli
用 lark-cli --version 确认能输出版本号。飞书官方 CLI 文档里还有 npx @larksuite/cli@latest install 的安装方式;以你本机最终能跑通 lark-cli 为准。
2、初始化应用配置
lark-cli config init
按提示打开授权链接或扫码,完成应用配置。
3、授权日历只读(必须是 user 身份)
lark-cli auth login --scope "calendar:calendar:readonly"
README 写得很明确:要用 user 身份,bot 看不到个人日历。后续拉日程时,插件内部调用的是 lark-cli calendar +agenda --as user。
4、验证
lark-cli auth status --json --verify
确认 identity 为 user、verified 为 true。
使用¶
重启 Web 界面之后,操作都在右侧面板里完成,没有额外的 slash 命令。
- 展开 / 收起:点「🕐 会议 N」胶囊;展开后点「收起」。
- 看一条会议:时间段、标题、组织人、会议室。有视频会议 URL 时,标题是可点击链接。
- 关闹钟:条目闪烁时,点这条记录。这只关掉已经触发的提前量,不是拒绝会议。
- 移除提醒:点右侧 ✕。之后这条不会再出现在本机列表里,直到你清掉本地隐藏记录(配置存在浏览器
localStorage,键名是dsh.meeting.hidden)。 - 明日:今日剩余为空时,点「明日」加载明天的会议;再点一次可隐藏。
设置路径是:设置 → 飞书会议提醒。各项与仓库表格一致:
| 配置项 | 说明 | 默认 |
|---|---|---|
| 提醒提前时间 | 多选分钟数,每个是独立闹钟 | 20、10、5 |
| 30 秒后自动停止闪烁 | 开关 | 开 |
| 提醒时自动展开 | 开关 | 开 |
| 刷新间隔 | 30 / 60 / 120 秒 | 30 秒 |
| 会议室名显示 | 完整 / 简短 | 完整 |
故障排查¶
仓库 README 列了三种常见情况,和 Host 端 /health、/list 返回的提示一致。
| 现象 | 原因 | 处理 |
|---|---|---|
| 面板显示「lark-cli 未安装」 | 系统里没有 @larksuite/cli,或 dsh 进程的 PATH 找不到它 |
npm install -g @larksuite/cli,并确认 lark-cli --version 可用 |
| 面板显示「飞书未授权或缺少日历权限」 | 未登录、scope 不够、登录过期 | 再跑一次 lark-cli auth login --scope "calendar:calendar:readonly" |
| 列表为空 | 今天确实没有尚未开始的会议 | 用 lark-cli calendar +agenda --as user 对照飞书日历 |
源码里执行 lark-cli 时会把 /opt/homebrew/bin 和 /usr/local/bin 补进 PATH。DeepSeek Harness 桌面应用启动时的 PATH 往往只有系统目录,Homebrew 装的 node / lark-cli 容易找不到;2026-08-17 那次提交就是补这个缺口。若你用桌面应用仍提示未安装,先在系统终端确认 CLI 路径,再看 dsh 进程能否继承到。
列表为空时还有一种情况:插件只保留 开始时间仍在未来 的日程。全天已开始、或已经过点的会不会出现在「今日剩余」里。
实现上值得看的几点¶
二次开发或安全评审时,可以直接读 index.js(Host)和 client.js(浏览器)。
数据源是:
lark-cli calendar +agenda --as user
看明天时会加上 --start / --end 当天日期。会议室另调:
lark-cli calendar events get --calendar-id primary --event-id <id> --need-attendee
重复日程实例用 recurring_event_id,例外实例用 event_id。Host 注册两条本地路由:GET /dsh-lark-meeting/list、GET /dsh-lark-meeting/health,前端用 fetch 拉 JSON。
执行 CLI 时,源码使用了:
sandboxPolicy: { mode: 'danger-full-access', workspaceRoot: '/' }
README 的解释是:要读 lark-cli 的本地配置,并且要联网调飞书接口。这意味着这条调用不走默认沙箱。安装前应把这一点视为明确的权限边界,而不是忽略。
Host 声明依赖 shell 和 webServer;客户端声明 platform: "web" 且 immediately: true,所以它挂在网页 overlay 上,而不是 headless 一次性任务里。
适用场景与注意事项¶
适合已经在用 DeepSeek Harness 网页界面、日程主要在 飞书 / Lark、并且本机已经(或愿意)装 lark-cli 的人。典型场景是长时间对着 dsh web 写代码、跑智能体,同时当天还有站会、评审、客户通话。
使用前建议先接受这几条边界:
1、只覆盖 Web。package.json 写明客户端平台是 web。不要指望它在纯 headless 任务里弹提醒。
2、只读个人日历。授权 scope 是 calendar:calendar:readonly,移除提醒也只写本机。它不是会议室预订工具,也不是飞书机器人。
3、权限与沙箱。插件随当前 dsh 进程运行;拉会议时对 lark-cli 使用 danger-full-access。装的是社区仓库,不是 DeepSeek 官方应用商店。许可证是 MIT,源码公开,但「开源」不等于「已经替你审计过」。
4、依赖官方 CLI 的登录态。token 过期、换了机器、只完成了 bot 登录,面板都会空或报未授权。先用 lark-cli auth status --json --verify 排除 CLI 本身的问题。
5、生态仍在预览。DeepSeek Harness 官方 README 写明后续会有破坏性变更。固定 commit 安装,比跟踪 main 更不容易在某次插件更新后行为漂移。
小结¶
dsh-lark-meeting-notifier 把飞书今日剩余会议钉在 DeepSeek Harness 网页右侧,用多档提前量和颜色闪烁做提醒,不改日历、不给模型加工具。装上它之前,先装好并授权 lark-cli,再按目录页或仓库里的 dsh plugin add 命令挂到 web profile,最后自己过一遍源码和沙箱策略。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-lark-meeting-notifier/
GitHub:https://github.com/yeruizhi/dsh-lark-meeting-notifier
DeepSeek Harness 官方仓库:https://github.com/deepseek-ai/deepseek-harness