文档
Rest Reminder 完整使用指南,从快速上手到高级功能。
Rest Reminder 是什么
一款免费开源的 Windows 桌面久坐提醒工具
Rest Reminder 是一款专为长时间学习/工作设计的桌面护眼助手。它会在你专注 60 分钟后自动提醒你休息,帮你养成科学的用眼习惯,保护视力健康。
核心功能包括:60 分钟专注循环(学习→倒计时→休息→B 站视频)、20-20-20 护眼提醒(每 20 分钟看远处 20 秒)、学习时长追踪(连续打卡 + 成就系统)、AI 学习分析(日报/周报/月报)。
48MB 轻量安装,数据完全本地存储,MIT 开源协议,永久免费。
快速开始
5 分钟上手 Rest Reminder
隐私与数据安全
所有数据仅存储在本地 JSON 文件,不上传任何服务器。无需注册账号,无需登录,MIT 开源可审计。
下载运行
双击 _launch.vbs 启动程序。无需安装 Python,无需额外依赖。
如果从源码运行,确保已安装依赖:
pip install -r requirements.txt python rest_reminder.py
首次运行会在程序目录创建数据文件(.daily_log.json、.review_log.json 等),用于持久化学习数据。
设定今日目标
启动后弹出目标设置对话框。输入今天主要学习内容,选择预计完成轮次。
提示: 目标是可选的。跳过不影响计时功能,随时可从主界面或浮球面板重新设定。
开始学习
程序默认以浮球形式驻留桌面右侧。点击浮球弹出信息面板,按 ▶ 开始学习启动 60 分钟倒计时。
计时流程
最后 5 分钟弹出请辨浮层,展示随机金句。倒计时结束自动进入休息状态,休息结束后自动打开 B 站收藏夹视频。
复盘与追踪
每小时学习结束后弹出复盘弹窗,为你提供一个反思和评估学习效果的机会。
📝 复盘评分
滑块选择 1-100 分评分,记录学科(语/数/英/物/化/政/其他)和标签(专注/疲劳/收获大/走神/其他)。数据持久化到本地,供趋势分析和 AI 报告使用。
🔥 连续打卡
每日学习满 4 小时自动打卡。连续打卡到达里程碑(1/3/7/14/30/60/90/365 天)时展示特殊金句奖励。中断后重新开始计数。
📊 实时数据
「今日」tab 每秒刷新学习时长、当前轮次、休息时长、状态标签。22:00 自动弹出每日学习汇报。
界面预览
Rest Reminder 核心界面一览
浮球挂件
60×60 桌面浮球,短点击弹出信息面板,长按拖动 reposition。休息时显示环形进度条。
学习倒计时
主面板实时显示倒计时、学习时长、轮次、状态标签。每秒刷新,22:00 自动弹出每日汇报。
趋势图表
今日复盘时间线、周/月/季/年柱状图、7×24 学习热力图。鼠标悬浮查看具体数值。
功能说明
深入了解每个功能的设计细节
⏱ 60 分钟专注循环
采用固定 60 分钟学习周期。60 分钟结束后进入 5 分钟请辨倒计时,浮层展示一条随机请辨金句,帮助你在休息前回顾学习内容。请辨结束后进入 5 分钟休息,休息结束后自动打开 B 站收藏夹视频。
计时规则:60min 学习 → 5min 请辨(金句) → 5min 休息 → B站视频 → 循环
每 3 轮休息后自动打开护眼视频(BV14Y4y1N7PW),缓解长时间用眼疲劳。
👁 20-20-20 护眼提醒
遵循眼科推荐的 20-20-20 法则:每学习 20 分钟,弹出轻量浮窗提醒看 6 米外 20 秒。浮窗 15 秒后自动消失,不打断学习流。可拖动到任意位置,下次启动记住位置。
📊 学习时长追踪与打卡
每次 60 分钟倒计时完成自动累计 1 小时学习时长。每日学习满 4 小时完成打卡。
- 连续打卡:每日达标自动累计,中断后从零开始
- 里程碑金句:连续 1/3/7/14/30/60/90/365 天触发专属激励文案
- 数据持久化:学习时长、休息时长、打卡记录全部存储在本地 JSON 文件
- 请辨金句:休息前展示思辨金句,每日不重复循环
📈 趋势分析
5 个标签页提供多维度学习数据分析:
复盘时间线 — 今天每次复盘的时间、评分、学科一览
近 7 天学习时长柱状图,鼠标悬浮查看具体数值
近 5 周学习时长趋势(周聚合)
近 6 个月月度趋势 + 总览统计
各时段专注度对比 + 一周学习热力图(7天×24小时)
🤖 AI 学习分析
基于任意 OpenAI 兼容 API,根据你的学习数据自动生成深度分析报告。支持 日报/周报/月报/季报/年报 五级报告。
每份报告包含
- 概览 — 学习时长、完成轮次、复盘质量数据总结
- 趋势分析 — 学习节奏变化,结合复盘评分解释原因
- 学科分布 — 各学科投入情况分析
- 改进建议 — 5-7 条可落地的具体行动
- 亮点总结 — 肯定成就,指出可保持的优点
未配置 API Key 时自动降级为本地数据摘要报告,确保功能可用。
💡 使用技巧
快捷键
Ctrl+Alt+P 暂停/继续学习计时,无需切换窗口。
浮球交互
短点击浮球弹出信息面板(含开始/暂停按钮),长按拖动 reposition。休息时浮球显示琥珀色环形进度条。
托盘控制
系统托盘右键菜单可补录复盘、打开信息面板、隐藏/退出程序。托盘图标 tooltip 实时显示倒计时和状态。
电池监控
充电时弹窗提醒拔掉电源,保护电池健康。
开机自启
设置中开启「开机自启」,程序随系统启动并在后台运行。
设置详解
每个选项的作用说明
🎯 学习计时
固定 60 分钟学习周期。包含 5 分钟请辨倒计时和 5 分钟休息,循环自动进行。
💬 请辨模式
休息前展示思辨金句,帮助你在休息前回顾学习内容。金句库每日不重复循环。
👁 20-20-20 护眼
每 20 分钟弹出护眼提醒浮窗,看 6 米外 20 秒,15 秒自动消失。可关闭。
📊 学习统计
开启后记录学习时长和休息时长,用于趋势分析和连续打卡。
📝 复盘提醒
每小时学习结束后弹出复盘评分弹窗,记录学科和标签。
🔊 声音提醒
休息提醒时播放提示音。休息音为轻柔两音符,倒计时结束为三音符上行琶音。
⚡ 开机自启
通过注册表实现开机自动启动。开启后程序随系统启动并在后台运行。
🤫 静默启动
启动后只显示浮球,不弹出主窗口。点击浮球弹出信息面板,显示倒计时与学习状态。
🗂 关闭最小化
关闭主窗口时最小化到系统托盘,而非退出程序。
开发指南
从源码构建和二次开发 Rest Reminder
环境要求
- Python 3.14+ — 核心依赖,必须使用 3.14 或更高版本
- PyQt5 — GUI 框架(项目 vendor/ 目录已内嵌兼容版本)
- Windows 10/11 — 使用 Win32 API(ctypes),仅支持 Windows
快速启动
git clone https://github.com/kuangketongxue/library-remind.git cd library-remind C:\Python314\python.exe rest_reminder.py --silent
注意:必须使用完整路径 C:\Python314\python.exe,PATH 中的 python 可能指向其他版本,导致 ImportError。
项目结构
主程序,约 8200 行,包含所有 UI 和业务逻辑
统一 JSON 存储层(JSONStore 类)
系统托盘卡片组件
飞书日程集成模块
内嵌 PyQt5 等依赖(按 Python 3.14 ABI 编译)
AI 开发规则和踩坑记录
状态机
程序基于四态循环状态机:idle → running → paused → resting → idle。所有状态转换逻辑集中在主循环的 _tick() 方法中。新增状态时需同步更新 _BTN_CONFIG、对应的 _handle_* 方法、以及主循环路由分支。
构建 EXE
pyinstaller RestReminder.spec
spec 文件已配置好 hiddenimports 和 icon。构建产物在 dist/ 目录,约 48MB。
代码规范
- 改完代码后先 py_compile 检查语法,再启动验证
- 所有数据文件使用 JSONStore 统一读写,不直接 open/write
- PyQt 数值 API 只接受 int,float 必须显式 int() 转换
- from PyQt5 import sip(不能用 import sip,3.14 不兼容)
- except 块必须有 log,不允许 bare pass
Claude Code 接入指南
使用 Claude Code 高效开发 Rest Reminder
项目配置
项目已配置 CLAUDE.md 和 AGENTS.md,Claude Code 打开项目目录后会自动加载开发规则、踩坑记录和关键配置位置。无需额外配置。
开发工作流
taskkill /F /IM python.exeC:\Python314\python.exe -c "import py_compile; py_compile.compile('rest_reminder.py')"C:\Python314\python.exe rest_reminder.py --silenttasklist | findstr python.exetype crash.log
注意事项
必须用 3.14,PATH 中的 python 可能是其他版本
第一调试入口,改完代码先看这里
Win32 Named Mutex 防护,崩溃自动释放
状态机改动需同步 _BTN_CONFIG + _handle_* + 路由分支
更新日志
最近几个重要版本
最新 — v6.2.10
2026-07-15 · 双启动修复 + 单实例锁 + 安装/卸载脚本统一
完整更新日志(含 v3.0-v5.1 全部版本)见 更新日志
常见问题
遇到问题?看看这里有没有答案
程序启动后只看到浮球,主界面不显示?
正常行为。默认静默启动只显示右下角浮球,点击浮球弹出信息面板。如需启动即显示主窗口,在设置中关闭「静默启动」。
B 站收藏夹没打开?
检查设置中的 B 站收藏夹 ID(fid)和用户 ID(mid)是否正确。默认使用项目内置的收藏夹,如需更换请在设置中修改。
AI 报告生成失败?
检查设置中是否配置了 SenseNova API Key。未配置时自动使用本地数据摘要报告,不会报错。可在「关于」页面的环境诊断中检查依赖状态。
复盘评分的数据存在哪里?
所有复盘数据存储在程序同目录的 .review_log.json 中。每轮学习结束后自动追加记录,包含时间、学科、标签和评分。
如何卸载?
直接删除程序文件夹即可。如开启了开机自启,请先运行 uninstall.bat 清除注册表项,再删除文件夹。
数据会丢失吗?
所有数据存储在本地 JSON 文件,重启电脑不丢失。重装系统前建议备份程序目录下的 .daily_log.json、.review_log.json、.streak.json 等文件。
支持 macOS / Linux 吗?
目前仅支持 Windows 10/11(基于 PyQt5 和 Windows API)。macOS 和 Linux 版本正在规划中。
需要联网才能用吗?
核心功能(休息提醒、护眼、学习追踪、趋势分析)完全离线运行。只有 AI 学习分析需要联网调用 SenseNova API,其余功能全部本地可用。
连续打卡中断了怎么办?
连续打卡基于每日学习时长判断(满 4 小时算一天)。如果某天未达标,连续天数归零,最佳记录保留。第二天达标后重新开始累计。
如何成为赞助商?
我们欢迎 API 服务、工具产品或其他形式的合作。请发送邮件至 kuangketongxue@gmail.com,注明合作意向和联系方式,我们会在 3 个工作日内回复。
有哪些合作方案?
支持多种合作形式:GitHub README 广告位、应用内预置接入、官网赞助商展示、优先技术支持等。具体方案可根据赞助商的资源和需求定制。
完成洽谈后多久可以上线?
根据合作内容不同,通常 1-2 周内完成接入和上线。简单的 API 接入可更快完成,复杂的定制化合作可能需要更长时间。
赞助商可以获得什么?
赞助商可获得 GitHub README 广告位、应用内预置接入、官网赞助商展示、优先技术支持等权益。具体权益根据赞助等级和合作形式确定。
故障排除
常见问题排查步骤
浮球不显示 / 点击无反应
按以下步骤排查:
- 检查程序是否在运行:查看系统托盘是否有图标。
- 右键点击托盘图标 → 选择「⚡ 显示浮球」。
- 若托盘图标也不存在,检查是否被安全软件拦截。
- 重启程序,确保无 crash.log 生成。
AI 报告生成失败 / 卡死
按以下步骤排查:
- 进入「设置 → AI 服务」检查 API Key 是否配置正确。
- 检查网络连接,确保能访问 API 端点。
- 未配置 Key 时自动降级为本地数据摘要,不会报错。若仍异常,查看 crash.log。
- 在「关于」页面的环境诊断中检查依赖状态。
倒计时不准 / 计时漂移
程序使用 time.perf_counter() 作为计时源,长时间运行误差极小。若发现明显不准,请确认没有通过任务管理器强制暂停 python.exe 进程。
B 站收藏夹没打开
按以下步骤排查:
- 检查设置中的 B 站收藏夹 ID(fid)和用户 ID(mid)是否正确。
- 确认默认浏览器可正常启动。
- 尝试手动打开收藏夹链接:https://space.bilibili.com/529362421/favlist?fid=3648313921
- 如收藏夹为私有,请确保账号已登录。
数据丢失 / 重装后恢复
所有数据存储在程序同目录的 .daily_log.json、.review_log.json、.streak.json。重装前请备份这些文件。