一个轻量、原生、离线运行的 macOS 菜单栏小工具。它把饮水记录、护眼休息和久坐起身提醒整合在同一个 App 中,重点帮助长期使用电脑的人中断持续用眼和久坐。
- 原生 AppKit / Objective-C,无第三方运行时依赖
- 菜单栏常驻,并可在设置中控制是否同时显示程序坞图标(默认显示)
- 所有数据只保存在当前 Mac 的
NSUserDefaults - 不联网、不登录、不上传数据
- 支持浅色/深色系统环境,以及减少动态效果、减少透明度和提高对比度
- Apple 芯片原生构建,App 包体约 1.5 MB
以下均为 App 在 macOS 中的实际运行画面,截图内容未做界面合成。
![]() 今日饮水与休息进度 |
![]() 最近 7 天记录 |
![]() 提醒与系统设置 |
![]() 护眼休息倒计时 |
![]() 起身活动提醒 |
可以从 GitHub Releases 下载最新的 macOS Apple 芯片版压缩包。
- 下载并解压
WaterReminder-*-macOS-arm64.zip。 - 将“喝水提醒.app”拖入“应用程序”文件夹。
- 双击启动“喝水提醒”。
- 根据系统提示允许通知。
如果看到“未打开‘喝水提醒’,Apple 无法验证‘喝水提醒’是否包含可能危害 Mac 安全或泄漏隐私的恶意软件”,请先点 “完成”,不要点“移到废纸篓”。
- 打开 Mac 的“系统设置”。
- 点击“隐私与安全性”,向下滚动到“安全性”。
- 找到“已阻止使用‘喝水提醒’”的提示,点击 “仍要打开”。
- 使用登录密码或 Touch ID 确认。
- 警告再次出现时,点击 “打开”。
“仍要打开”通常只会在尝试启动 App 后的一小时内出现。如果没有看到,请再双击一次“喝水提醒”,随后立即返回“系统设置”检查。成功确认一次后,macOS 会把这个 App 保存为安全性例外,以后可以正常双击打开。
这个提示是因为公开版本没有使用 Apple Developer ID 签名和 Apple 公证,并不等同于系统已经检测到病毒。请只对从本项目 GitHub Releases 下载的版本执行上述操作。如果系统明确提示“将损坏你的电脑”或“检测到恶意软件”,请不要继续打开,并在项目中反馈。
更完整的处理说明见 使用说明.md。
当前公开版本使用本地 ad-hoc 签名,没有 Apple Developer ID 公证。macOS 可能提示无法验证开发者;不放心时可以阅读源码并按下方步骤自行构建。它只支持 Apple 芯片 Mac 和 macOS 13 或更高版本。
- 工作时间:08:30–12:00、13:30–18:00
- 护眼:每 20 分钟提醒一次,默认休息 50 秒
- 起身活动:每 60 分钟提醒一次,默认活动 5 分钟
- 起身提醒支持“开始活动”“稍后 10 分钟”和“跳过”
- 午休期间暂停提醒,Mac 睡眠恢复后不会连续补发旧提醒
- 饮水目标:每天 2000 ml
- 快捷记录:
+50、+100、+250、+500、+850、+1000 ml
护眼和起身提醒使用不抢输入焦点的屏幕提示,并可播放 Mac 系统提示音。每小时的起身提醒会与饮水进度检查合并,减少重复打扰。
- macOS 13 或更高版本
- Apple 芯片 Mac
- Apple Command Line Tools(不需要安装完整 Xcode)
在项目目录运行:
./build.sh生成的 App 位于:
dist/喝水提醒.app
运行完整验证:
./verify.sh验证内容包括核心时间逻辑、设置兼容、签名、架构、依赖、包体大小、照片隔离和网络调用检查。
Sources/ App 源码
Resources/ Info.plist 和矢量图标
Tests/ 核心逻辑测试
Tools/ 图标生成工具
build.sh 构建、测试和 ad-hoc 签名
verify.sh 成品验证
使用说明.md 中文使用说明
build/ 和 dist/ 是本地生成内容,不提交到 Git 仓库。设计参考照片也不包含在项目中。
App 没有网络功能,也不会读取浏览器、通讯录、聊天记录或其他个人文件。饮水和休息记录仅保留最近 7 个日历日。
本工具用于日常提醒,不是医疗器械,也不能代替眼科、骨科或康复医学检查。
更详细的使用方式见 使用说明.md。
本项目采用 MIT License。你可以使用、修改和分发代码,但需保留原版权与许可声明。





