Enter

文档

Rest Reminder 完整使用指南,从快速上手到高级功能。

Rest Reminder 是什么

一款免费开源的 Windows 桌面久坐提醒工具

Rest Reminder 是一款专为长时间学习/工作设计的桌面护眼助手。它会在你专注 60 分钟后自动提醒你休息,帮你养成科学的用眼习惯,保护视力健康。

核心功能包括:60 分钟专注循环(学习→倒计时→休息→B 站视频)、20-20-20 护眼提醒(每 20 分钟看远处 20 秒)、学习时长追踪(连续打卡 + 成就系统)、AI 学习分析(日报/周报/月报)。

48MB 轻量安装,数据完全本地存储,MIT 开源协议,永久免费。

48MB
轻量安装
60min
自动循环
17
成就徽章
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 分钟倒计时。

计时流程

60min 学习5min 请辨5min 休息B站视频

最后 5 分钟弹出请辨浮层,展示随机金句。倒计时结束自动进入休息状态,休息结束后自动打开 B 站收藏夹视频。

复盘与追踪

每小时学习结束后弹出复盘弹窗,为你提供一个反思和评估学习效果的机会。

📝 复盘评分

滑块选择 1-100 分评分,记录学科(语/数/英/物/化/政/其他)和标签(专注/疲劳/收获大/走神/其他)。数据持久化到本地,供趋势分析和 AI 报告使用。

🔥 连续打卡

每日学习满 4 小时自动打卡。连续打卡到达里程碑(1/3/7/14/30/60/90/365 天)时展示特殊金句奖励。中断后重新开始计数。

📊 实时数据

「今日」tab 每秒刷新学习时长、当前轮次、休息时长、状态标签。22:00 自动弹出每日学习汇报。

界面预览

Rest Reminder 核心界面一览

浮球挂件

60×60 桌面浮球,短点击弹出信息面板,长按拖动 reposition。休息时显示环形进度条。

⏱ 58:32

学习倒计时

主面板实时显示倒计时、学习时长、轮次、状态标签。每秒刷新,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。

项目结构

rest_reminder.py

主程序,约 8200 行,包含所有 UI 和业务逻辑

storage.py

统一 JSON 存储层(JSONStore 类)

tray_card.py

系统托盘卡片组件

feishu_calendar.py

飞书日程集成模块

vendor/

内嵌 PyQt5 等依赖(按 Python 3.14 ABI 编译)

CLAUDE.md / AGENTS.md

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 打开项目目录后会自动加载开发规则、踩坑记录和关键配置位置。无需额外配置。

开发工作流

  1. taskkill /F /IM python.exe
  2. C:\Python314\python.exe -c "import py_compile; py_compile.compile('rest_reminder.py')"
  3. C:\Python314\python.exe rest_reminder.py --silent
  4. tasklist | findstr python.exe
  5. type crash.log

注意事项

Python 版本

必须用 3.14,PATH 中的 python 可能是其他版本

crash.log

第一调试入口,改完代码先看这里

多实例

Win32 Named Mutex 防护,崩溃自动释放

UI 修改

状态机改动需同步 _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 广告位、应用内预置接入、官网赞助商展示、优先技术支持等权益。具体权益根据赞助等级和合作形式确定。

故障排除

常见问题排查步骤

浮球不显示 / 点击无反应

按以下步骤排查:

  1. 检查程序是否在运行:查看系统托盘是否有图标。
  2. 右键点击托盘图标 → 选择「⚡ 显示浮球」。
  3. 若托盘图标也不存在,检查是否被安全软件拦截。
  4. 重启程序,确保无 crash.log 生成。

AI 报告生成失败 / 卡死

按以下步骤排查:

  1. 进入「设置 → AI 服务」检查 API Key 是否配置正确。
  2. 检查网络连接,确保能访问 API 端点。
  3. 未配置 Key 时自动降级为本地数据摘要,不会报错。若仍异常,查看 crash.log。
  4. 在「关于」页面的环境诊断中检查依赖状态。

倒计时不准 / 计时漂移

程序使用 time.perf_counter() 作为计时源,长时间运行误差极小。若发现明显不准,请确认没有通过任务管理器强制暂停 python.exe 进程。

B 站收藏夹没打开

按以下步骤排查:

  1. 检查设置中的 B 站收藏夹 ID(fid)和用户 ID(mid)是否正确。
  2. 确认默认浏览器可正常启动。
  3. 尝试手动打开收藏夹链接:https://space.bilibili.com/529362421/favlist?fid=3648313921
  4. 如收藏夹为私有,请确保账号已登录。

数据丢失 / 重装后恢复

所有数据存储在程序同目录的 .daily_log.json、.review_log.json、.streak.json。重装前请备份这些文件。