前言¶
在 DSH(DeepSeek Harness)里做智能体,总有些杂事要盯着:GitHub 通知里哪些已经合并、哪些还在失败;账单、续费、证件到期、生日这些到期事项,会不会忘记处理。如果手动看,容易漏;如果全交 AI,又容易被噪音淹没。dsh-mishu 在 DSH 里当个“小秘书”,它定期拉 GitHub 通知,根据对象当前状态判断是否已解决,自动关闭;你口头交代的事项,它帮你整理成提醒,到期时进入待处理。密码只进系统钥匙串,不写进任何文件。
核心功能¶
GitHub 通知分诊¶
每 15 分钟拉一次全部未读通知,不看通知文字,只查对象现在的状态。几十条通知会合并成少数几件事,同一工作流在同一分支上的失败算一件事,同一个 fork 的定时任务失败噪音也合并成一件事。判断规则(reason)如下:
| 理由码 | 含义 |
|---|---|
merged / closed |
PR 已合并,或 issue / PR 已关闭 |
recovered |
同一工作流在同一分支上后来通过了 |
superseded |
旧版本 tag 失败了,但后面的 main 或更新的 tag 已经通过 |
ref-gone |
失败的那个分支已经删了 |
fork-upstream-schedule |
fork 没有自己的提交,却在跑上游的定时任务,失败通知全是噪音;合成一件事:关掉这个 fork 的 Actions |
ci-failing |
最近一次还是失败,交给你 |
review-requested / mentioned / assigned / your-pr / commit-comment |
交给你 |
手动交代事项¶
在任何 DSH 对话里说一句,比如“护照 2027 年 3 月 10 日到期”或“每月 15 号交房租”。模型会整理出日期、重复方式和提前多久提醒,DSH 弹出审批卡片让你核对,你同意了才存。到了提醒那天,它出现在待处理里。你说办了,这一期就关闭,下一期按周期自动出现。
默认提前量:证件 90 天,账单 3 天,生日纪念日 7 天,续费续保 7 天,其他 1 天。
邮件只读收件箱¶
在设置页添加邮箱(QQ、163、126、Gmail、iCloud,或自己填 IMAP 服务器),小秘书定时看收件箱里最近的未读邮件。只读方式打开:只看发件人、收件人、标题和几个邮件头,不读正文,也不会把邮件标成已读。邮件往来回复算一件事。你在邮件客户端里看过之后,对应的事项会自动关闭。
邮件分诊理由:
| 理由码 | 含义 |
|---|---|
mail-to-you |
直接写给你、没有群发或自动发送标记的邮件,可能在等你回复 |
mail-invite |
会议或日程邀请,等你回应 |
mail-bill |
标题里有账单、还款、缴费、续费、发票之类的字眼(哪怕是群发的) |
mail-newsletter / mail-automated |
群发邮件、系统自动邮件:折叠起来,不打扰你 |
mail-code / mail-github / mail-cc |
验证码、GitHub 通知邮件(GitHub 来源已经在管)、只是抄送你 |
密码放在系统钥匙串¶
macOS 钥匙串、Windows 凭据管理器、Linux 密钥环(Secret Service)。密码只在设置页输入一次,直接交给钥匙串,不写进任何文件,接口也从不返回它。没有钥匙串的电脑(比如没有桌面的 Linux 服务器),密码和 token 存进记事本目录里的 secrets.json:权限 600,只有你的系统账号能读,但没有加密,设置页会写明这一点和原因。
看板与操作¶
点 DSH 左侧栏的“小秘书”,打开整页看板。顶部是一句话总结和四个数字(要你处理、7 天内到期、今天替你关掉、待你核对),下面分三栏:
- 要你处理:现在需要你的事。每张卡片写明是什么、问题在哪、怎么办(比如 CI 失败在哪个 job 的哪一步、上次成功是什么时候),主按钮直接打开该看的地方(“看失败日志”“去关掉 Actions”“去审查”),还有办完了、明天再说、忽略。
- 我记着:说过“明天再说”的事,以及还没到提醒时间的交代。底部可以直接交代新的事,填写时会实时显示小秘书理解成了什么。
- 替你办了:最近 7 天关掉的事,按理由分组。点“怎么回事”能看到它是什么、为什么关掉(附证据链接)、小秘书做了什么、来自哪几条通知。判错了就点“恢复”。
卡片可以拖动:拖到“替你办了”就是办完,拖到“我记着”就是明天再提醒,从“我记着”拖回“要你处理”就是现在处理。三栏之间的分隔条也能拖动调宽度,双击恢复等宽。
看板上方可以按来源筛选:全部、GitHub、邮件、交代。
+AI 与文字命令¶
看不明白就点彩色的“+AI”。它会开一个新对话,把这件事的说明、链接和相关通知放进输入框(不会自动发送),你看过、补上自己的问题再按发送。看板上的每张卡片、顶部总结、来源报错、设置页里各邮箱服务商的开通说明都有这个按钮。对话里的 AI 可以用 mishu_detail 查一件事的完整记录;要改状态时会先问你。
文字命令(中文与英文均可):
/mishu 简报:要处理的、快到了的、最近替你关掉了什么
/mishu sync 立刻同步一次 GitHub
/mishu 完成 12 把 #12 标为完成(还有:忽略 12、恢复 12)
/mishu 已关闭 最近 3 天关掉的事项和理由
/mishu 交代 你交代过、还在进行的事
/mishu 停止 3 交代 #3 以后不再提醒
agent 可用的工具:mishu_add(交代,需要你审批)、mishu_list、mishu_detail、mishu_update、mishu_stop。
设置与 GitHub token¶
点页面顶部的“设置”:语言、各类别提前几天提醒、GitHub(开关、token 从哪来、测试连接、在 GitHub 上标已读的方式)、邮箱账户(添加、测试连接、现在收一次、编辑、删除)。页面顶部“设置”后面的按键可以重启 DSH(桌面版会正常退出再自动打开;用 dsh-vps 装在服务器上的 DSH 由 dsh-gate 托管;直接用 dsh 命令启动的 DSH 需要在终端里 Ctrl+C 再运行一次)。
GitHub token 按顺序取,token 不写进任何文件:
- 环境变量(默认
GITHUB_TOKEN) - 在设置页“用 GitHub 登录”拿到的 token(GitHub 设备登录:显示一个登录码,你在 github.com/login/device 输入并授权,手机或别的电脑上都行),或者你粘贴的 token:先拿到 GitHub 上检查,再存进系统钥匙串(没钥匙串时存进
secrets.json)。要用 classic token,勾选notifications(看私有仓库再勾repo);GitHub 的通知接口不认 fine-grained token gh auth token:装了 GitHub CLI,并运行过gh auth login就行。从 Dock、开始菜单启动的 DSH 拿到的 PATH 往往很短,所以小秘书除了 PATH,还会去 Homebrew、~/.local/bin、winget、Scoop 等常见安装位置找gh
安装与配置¶
安装:
dsh plugin --profile <name> add dsh-mishu
在 profile 的 cordis.patch.yml 里可以覆盖配置:
- id: dsh-mishu
name: dsh-mishu
config:
home: ~/.mishu # 记事本目录,在 DSH 之外
language: auto # auto(跟系统语言)/ zh / en
github:
enabled: true
intervalMinutes: 15
tokenEnv: GITHUB_TOKEN
useGhCli: true
markRead: shadow # off / shadow / on
markReadReasons: [merged, closed, recovered, superseded, ref-gone]
leadDays: { document: 90, bill: 3, birthday: 7, renewal: 7, other: 1 }
upcomingDays: 30 # 简报里"快到了"往后看多少天
记事本是 ~/.mishu/mishu.db(SQLite),只存元数据和简短备注,不存邮件正文和 token。在 macOS / Linux 上,这个目录只有你本人能读写。卸载插件不会删它。
不会做的事¶
- 默认不在 GitHub 上标已读。
markRead默认是shadow:只记下“如果打开,会把哪些通知标成已读”,一条也不真标。核对过/mishu 已关闭后,再改成on。还在待处理里的事项,永远不会被标已读。 - 通知文字不会触发任何动作。只看查到的状态。
- 你改过的状态,不会被同样的证据改回去。只有来源出现更新的动态,才会重新判断。
- 你重新打开一件被规则关掉的事,算一次纠正。一条规则关掉的事项满 10 件、被纠正的比例超过 20%,这条规则就降级:之后它的结论只给你看,不再自动关闭。
- 不动你的邮箱。只读打开,不读正文,不标已读,不删不移,不发信。
适用场景与注意¶
适合需要持续盯着 GitHub 通知、批量到期事项提醒的开发者或团队。插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证(MIT)。目前飞书尚未接入;Windows 和 Linux 的钥匙串实现已按各自系统的方式实现,但还没在真机上测过。
结尾¶
dsh-mishu 把 GitHub 通知分诊、到期事项提醒和只读邮件收件箱整合进 DSH,帮你过滤噪音、自动关闭已解决的事项,只留下需要你处理的事。如果你在 DSH 里做智能体,又常被通知和到期事项打扰,可以试试这个小秘书。目录页与源码见下: