爱意满满的作品展示区。
tab16360

[开源] 记事喵 · TaskCat,微信随手记,待办随身行

  •  
  •   tab16360 · 2h 1m ago · 279 views

    我的待办清单里,常年躺着一堆三周前写的事。

    后来想明白了,不是懒,是记一件事的成本太高:打开 App ,找列表,选日期,挑分组。这一套点完,脑子里那个念头早跑了。人在外面更惨,只能先发给「文件传输助手」,回到电脑前再抄一遍,然后就忘了抄。

    所以给自己写了个小工具,叫记事喵 TaskCat,用了一段时间,今天发 1.0 ,代码也一起开源了。

    记事喵面板

    它只解决三件事

    1. 坐在电脑前:⌥⌘T 一句话记下

    在任何 App 里按 ⌥⌘T ,输入框直接弹出来。打一句「明天下午三点前交周报,进度先记 40%」,回车。标题、截止时间、进度、分组由 AI 拆好,人不用离开正在写的东西。不想经过 AI ,就按 ⇧↩ 原样存一条。

    2. 人在外面:发一句微信就记下

    给记事喵发「周四上午十点约牙医」,它把时间和分组理解好,回一条核对;回「确认 1 」,Mac 菜单栏和 iPhone 提醒事项同时出现,到点照常提醒。

    带时间的指令一律先核对一眼,宁可多一步,也不记错日子。查「这周还有什么」、「任务 3 改到下周一」、「任务 1 标记完成」也在同一个对话里。

    3. 清单不再是一堵墙

    每天第一次打开,它不先甩给你 30 条待办,而是先用两三句话说:哪件逾期了,今天先做哪件。列表按「已逾期 / 今天 / 明天 / 7 天内」分段,逾期标红;「…」菜单里一键推迟到明天或下周一(保留原来的时刻);点错完成,底部有撤销。菜单栏图标旁的数字就是今天逾期加到期的件数。

    对话记录

    大家大概会问的

    数据存在哪? 不建服务器,不收集数据。任务存在系统「提醒事项」的专用列表里,选 iCloud 账户就自动同步到 iPhone ,到期由系统通知,Mac 关机也照样提醒。两台 Mac 之间的状态、进度、编号走你自己的 iCloud Drive 。

    AI 用谁的? 你自己配。任何 OpenAI 兼容接口都行(自备 Key ),也可以接本地 Ollama ,数据完全不出本机。发给云端模型的只有相关任务的标题、状态、分组,备注一个字都不发。Key 只存在本机配置目录,不进备份、不跨机同步。不配模型也能手动管理全部任务。

    微信是怎么接的? 先说清楚:微信入口是可选的桥接,适配的是第三方 SDK wechat_clawbot_sdk。安装包和仓库都不包含这个 SDK ,许可要你自己确认,需要自己准备运行环境,而且得 Mac 上的记事喵开着。不接微信,菜单栏部分完全可以独立用。

    AI 听错了怎么办? 会改动任务的指令默认先确认;完成后可撤销;删除进回收站,可以按原编号恢复。每次修改都先写一条不可变的操作日志,再回读系统提醒事项确认写成功,微信重试同一条消息也不会重复执行。

    开发里两件有意思的事

    用自己的另一个工具「流量喵」抓到记事喵一天写了 4G 多的盘。 查下来是双机同步每 12 秒跑一次,每次把内容根本没变的文件逐个「原子写 + fsync 」重写一遍,还会把全部操作日志重放进一个临时目录做校验。文件只有几百字节,但 APFS 每次强制刷盘都连带元数据,放大成一天好几个 G 。改成内容没变就跳过、校验全部放内存后,空闲时实测两分钟 0 KB 。顺手补了一个测试,直接读进程自己的磁盘写入计数,防止回退。

    每次更新都要重新授权提醒事项。 原因是临时签名( ad-hoc )每次构建签名都不同,macOS 把它当成新 App 。换成一张固定的自签名证书后,指定要求( designated requirement )稳定了,更新后授权保留;顺带让应用内更新只接受同一证书签名的新版本,比单纯核对 SHA-256 更靠谱一点。

    技术栈和现状

    • Swift + SwiftUI 原生,EventKit 存任务,不用 Electron ,安装包 3 MB 左右
    • 299 项测试( pytest 驱动、编译真实 Swift 代码跑合成数据,不碰你的提醒事项和钥匙串)
    • macOS 14+,Apple Silicon 实测过,Intel 还没验收
    • 没有 Apple 公证,第一次打开要在「隐私与安全性」里点「仍要打开」
    • 没有独立 iPhone App ,手机端就是系统提醒事项
    • Apache-2.0

    链接

    一个人做的,肯定还有不少粗糙的地方。欢迎来提 issue 、拍砖,尤其想听听:你平时的待办是怎么记的,卡在哪一步。

    记事这件事,本来就应该比忘记更容易

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5320 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:55 · PVG 10:55 · LAX 19:55 · JFK 22:55
    ♥ Do have faith in what you're doing.