{"id":50557256,"url":"https://github.com/guangshu100/eyecare","last_synced_at":"2026-06-04T08:02:49.964Z","repository":{"id":349674703,"uuid":"1203365836","full_name":"guangshu100/EyeCare","owner":"guangshu100","description":"开源 AI 智能健康桌面应用 (Tauri v2 + Rust)｜护眼休息提醒 · 喝水提醒 · 用药提醒（规划中）｜眼睛生命值 · 宠物养成 · 20-20-20法则 · 久坐检测 · 多AI模型｜Windows/macOS/Linux 跨平台","archived":false,"fork":false,"pushed_at":"2026-05-29T09:08:41.000Z","size":331,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-29T09:15:16.497Z","etag":null,"topics":["20-20-20-rule","ai-agents","break-reminder","cross-platform","eye-care","health-reminder","healthcare","idle-detection","medication-reminder","system-tray","tauri2","water-reminder"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guangshu100.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-07T01:23:55.000Z","updated_at":"2026-05-29T09:13:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/guangshu100/EyeCare","commit_stats":null,"previous_names":["guangshu100/deskpulse","guangshu100/eyecare"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/guangshu100/EyeCare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangshu100%2FEyeCare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangshu100%2FEyeCare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangshu100%2FEyeCare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangshu100%2FEyeCare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guangshu100","download_url":"https://codeload.github.com/guangshu100/EyeCare/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangshu100%2FEyeCare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33895175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["20-20-20-rule","ai-agents","break-reminder","cross-platform","eye-care","health-reminder","healthcare","idle-detection","medication-reminder","system-tray","tauri2","water-reminder"],"created_at":"2026-06-04T08:02:49.100Z","updated_at":"2026-06-04T08:02:49.954Z","avatar_url":"https://github.com/guangshu100.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EyeCare - 护眼提醒助手\n\n[English](#english) | [中文](#中文)\n\n---\n\n\u003ca name=\"中文\"\u003e\u003c/a\u003e\n\n## 中文\n\n### 简介\n\nEyeCare 是一款轻量级的护眼提醒桌面应用，基于 Tauri v2 开发。它通过智能监测您的**连续工作时长**，在适当的时候提醒您休息，帮助保护眼睛健康。支持 AI 智能生成个性化提醒文案，让休息提醒更加有趣和贴心。\n\n**核心设计理念**：不同于传统定时器式提醒，EyeCare 基于连续工作时长触发提醒，并引入眼睛生命值系统、严重程度分级、自然休息检测和宠物养成等机制，让护眼成为一种健康习惯。\n\n### 功能特性\n\n#### 核心功能\n\n- **智能休息提醒** - 基于连续工作时长触发提醒（默认 40 分钟），而非简单的定时器\n- **眼睛生命值系统** - 直观显示眼睛疲劳程度（0-100），按工作时间衰减（约每 60 秒 -1），休息后恢复\n- **自然休息检测** - 检测用户空闲状态（20 秒无操作），自动暂停计时；空闲超过 60 秒视为有效休息，重置工作计时器\n- **严重程度分级** - 根据跳过次数和眼睛健康值，动态调整提醒语气（1-5 级）：\n  - 1 级：温柔鼓励\n  - 2 级：友好提醒\n  - 3 级：关切严肃\n  - 4 级：幽默讽刺\n  - 5 级：黑色幽默 / 戏剧化\n- **系统休眠感知** - 自动检测系统休眠/唤醒事件，暂停和恢复计时\n\n#### 喝水提醒\n\n- **上班排班模式** - 按办公时段智能提醒（6 个时段：9:00、10:30、11:30、13:30、15:00、17:00，约 1150ml/天）\n- **固定间隔模式** - 自定义提醒间隔（10-120 分钟）、每日目标（500-4000ml）和每杯容量\n- **进度追踪** - 实时显示今日饮水量、完成进度和排班时段状态\n- **托盘快捷记录** - 右键菜单一键记录「已喝一杯水」\n\n#### AI 智能增强\n\n- **多服务商支持** - 硅基流动、OpenAI、DeepSeek、Ollama（本地部署），兼容所有 OpenAI 格式 API\n- **个性化文案** - 根据工作时间、跳过次数、眼睛健康值、时间段、用户身份生成定制提醒\n- **多种风格** - 温柔鼓励型、幽默俏皮型、暖心关怀型、科普知识型、平衡模式\n- **本地消息兜底** - AI 不可用时自动使用 60+ 条本地消息库（按严重程度匹配）\n- **智能缓存** - 相同上下文缓存 1 小时，减少重复 API 调用\n- **请求限流** - 每 30 秒最多 1 次 API 调用，避免频繁请求\n- **超时回退** - API 超时 8 秒自动回退预设文案\n- **API 密钥加密** - 使用 AES-256-GCM 加密存储，基于机器标识派生密钥\n\n#### 宠物系统\n\n- **养成互动** - 休息完成增加宠物心情（+15），跳过休息降低心情（-20），抚摸互动（+3）\n- **等级成长** - 累计休息次数提升宠物等级（公式：`1 + floor(sqrt(total_breaks))`，最高 99 级）\n- **经验进度** - 每级所需经验为 `level²`，可视化升级进度\n- **成就系统** - 解锁成就徽章（首次休息、10/50/100 次休息、5/10 级等）\n- **心情衰减** - 持续工作 5 分钟宠物心情 -1\n- **自定义命名** - 支持给宠物取名（最长 12 字符）\n\n#### 系统集成\n\n- **系统托盘** - 托盘图标显示倒计时和眼睛生命值，右键菜单快捷操作（暂停/休息/喝水/设置/退出）\n- **应用白名单** - 在会议软件等应用中自动暂停计时（通过窗口标题检测前台应用）\n- **开机自启** - 支持开机自动启动（支持 `--minimized` 参数静默启动）\n- **全局快捷键** - `Ctrl+Shift+R` 立即休息、`Ctrl+Shift+P` 暂停/恢复监控\n- **4K 背景图** - 全屏休息页面支持高清护眼背景图（网络加载 + 淡入动画）\n- **便携模式** - 可执行文件同目录下放置 `.portable` 标记文件或 `config.json` 即可以便携模式运行\n\n### 技术栈\n\n| 层级 | 技术 | 说明 |\n|------|------|------|\n| **框架** | Tauri v2 | 轻量级跨平台桌面应用框架 |\n| **前端** | HTML5 + CSS3 + Vanilla JavaScript (ES Module) | 无框架依赖，减少体积 |\n| **后端** | Rust | 高性能、内存安全 |\n| **存储** | JSON 配置文件 | 本地持久化，支持加密字段 |\n| **HTTP** | reqwest + rustls-tls | HTTPS 加密传输 |\n| **加密** | ring (AES-256-GCM) | API 密钥本地加密存储 |\n| **空闲检测** | Win32 API / Cocoa / XScreenSaver | 跨平台原生空闲检测 |\n| **打包** | NSIS / MSI | Windows 安装包 |\n\n### 项目结构\n\n```\neye-care/\n├── src/                    # 前端资源\n│   ├── index.html          # 主窗口（设置面板 + 状态展示）\n│   ├── fullscreen.html     # 全屏休息页面（倒计时 + AI 文案 + 背景图）\n│   ├── styles.css          # 全局样式\n│   └── main.js             # 前端逻辑（Tauri IPC 通信）\n├── src-tauri/              # Rust 后端\n│   ├── src/\n│   │   ├── main.rs         # 程序入口\n│   │   ├── lib.rs          # 核心逻辑 + Tauri 命令注册\n│   │   ├── idle.rs         # 空闲检测 + 监控循环 + 自然休息检测\n│   │   ├── config.rs       # 配置管理（加载/保存/加密/便携模式）\n│   │   ├── ai.rs           # AI 文案生成 + 本地消息库 + 缓存/限流\n│   │   ├── tray.rs         # 系统托盘 + 全屏窗口管理\n│   │   ├── water.rs        # 喝水提醒（排班模式 + 间隔模式）\n│   │   └── crypto.rs       # AES-256-GCM 加密/解密\n│   ├── capabilities/       # Tauri 权限配置\n│   ├── icons/              # 应用图标\n│   ├── Cargo.toml          # Rust 依赖\n│   └── tauri.conf.json     # Tauri 应用配置\n├── docs/                   # 文档\n│   ├── SPEC.md             # 需求规格说明书\n│   ├── MEDICATION_REMINDER.md  # 用药提醒功能方案\n│   └── DEVELOPMENT.md      # 开发文档\n├── package.json            # Node.js 依赖\n└── LICENSE                 # Apache 2.0 License\n```\n\n### 安装\n\n#### Windows\n\n下载安装包：\n- `EyeCare_1.0.0_x64-setup.exe` (NSIS 安装包，用户级安装，无需管理员权限)\n- `EyeCare_1.0.0_x64_en-US.msi` (MSI 安装包)\n\n#### 从源码构建\n\n**前置要求**：\n- [Node.js](https://nodejs.org/) (v16+)\n- [Rust](https://www.rust-lang.org/tools/install) (v1.70+)\n- Windows: Microsoft Visual Studio C++ Build Tools\n- Linux: `libx11-dev` `libxss-dev` (apt) / `libX11-devel` `libXss-devel` (dnf)\n\n```bash\n# 克隆项目\ngit clone \u003crepository-url\u003e\ncd eye-care\n\n# 安装前端依赖\nnpm install\n\n# 开发模式（热重载）\nnpm run dev\n\n# 构建发布版本\nnpm run build\n```\n\n构建产物位于 `src-tauri/target/release/bundle/`。\n\n### 配置\n\n配置文件路径（按优先级）：\n1. **环境变量**：`EYECARE_CONFIG_PATH`（指定文件路径）或 `EYECARE_CONFIG_DIR`（指定目录）\n2. **便携模式**：可执行文件同目录下的 `config.json`（需存在 `.portable` 标记文件）\n3. **系统默认**：\n   - Windows: `%APPDATA%\\eye-care\\config.json`\n   - macOS: `~/Library/Application Support/eye-care/config.json`\n   - Linux: `~/.config/eye-care/config.json`\n\n#### 配置示例\n\n```json\n{\n  \"version\": \"1.0.0\",\n  \"idle_threshold\": 40,\n  \"check_interval\": 2,\n  \"break_duration\": 60,\n  \"notify_before_fullscreen\": 5,\n  \"max_skips_per_day\": 3,\n  \"theme_color\": \"#E8F4F8\",\n  \"auto_start\": true,\n  \"ai\": {\n    \"enabled\": true,\n    \"provider\": \"siliconflow\",\n    \"api_base_url\": \"https://api.siliconflow.cn/v1\",\n    \"api_key\": \"enc:\u003cAES-256-GCM encrypted\u003e\",\n    \"model\": \"Qwen/Qwen2.5-7B-Instruct\",\n    \"preferred_style\": \"balanced\"\n  },\n  \"water\": {\n    \"enabled\": true,\n    \"schedule_enabled\": true,\n    \"interval_minutes\": 30,\n    \"daily_goal_ml\": 2000,\n    \"cup_size_ml\": 250\n  }\n}\n```\n\n### 默认设置\n\n| 设置项 | 默认值 | 可配置范围 | 说明 |\n|--------|--------|------------|------|\n| 休息间隔 | 40 分钟 | 5-120 分钟 | 连续工作多久后提醒休息 |\n| 休息时长 | 60 秒 | 15-120 秒 | 每次休息的倒计时时长 |\n| 最大跳过次数 | 3 次/天 | 1-10 次 | 超过后进入强制休息模式 |\n| 通知延迟 | 5 秒 | 0-30 秒 | 通知到全屏页面的等待时间 |\n| 检测间隔 | 2 秒 | 1-10 秒 | 空闲状态轮询间隔 |\n| 开机自启 | 开启 | - | 系统启动时自动运行 |\n| 主题色 | #E8F4F8 | 3 种预设 | 淡蓝 / 米黄 / 浅绿 |\n\n### 默认白名单应用\n\n腾讯会议、Zoom、Teams、Skype、钉钉、飞书、腾讯QQ、微信、企业微信、Slack、Webex、GoTo Meeting、Google Meet\n\n### 快捷键\n\n| 快捷键 | 功能 |\n|--------|------|\n| `Ctrl+Shift+R` | 立即休息（全局） |\n| `Ctrl+Shift+P` | 暂停/恢复监控（全局） |\n| `Esc` | 关闭全屏休息页面 |\n\n### 平台支持\n\n| 平台 | 空闲检测 | 白名单 | 打包格式 |\n|------|----------|--------|----------|\n| Windows | GetLastInputInfo | 窗口标题检测 | NSIS / MSI |\n| macOS | NSEvent | - | DMG (计划中) |\n| Linux | XScreenSaver | - | AppImage (计划中) |\n\n### 路线图\n\n| 版本 | 功能 | 状态 |\n|------|------|------|\n| v0.2.0 | 护眼提醒 + 喝水提醒 + AI 文案 + 宠物系统 | 已完成 |\n| v0.3.0 | **用药提醒** - 多药品管理、多级提醒、服药确认、库存预警 | 规划中 |\n| v0.4.0 | **AI 用药助手** - 用药咨询对话、智能排程、依从性周报 | 规划中 |\n| v0.5.0 | 药物相互作用检测、用药记录导出、多设备同步 | 远期 |\n\n\u003e 用药提醒功能详细方案见 [docs/MEDICATION_REMINDER.md](docs/MEDICATION_REMINDER.md)\n\n### 许可证\n\n[Apache License 2.0](LICENSE)\n\n---\n\n\u003ca name=\"english\"\u003e\u003c/a\u003e\n\n## English\n\n### Introduction\n\nEyeCare is a lightweight eye protection reminder desktop application built with Tauri v2. It intelligently monitors your **continuous work duration** and reminds you to take breaks at appropriate times to help protect your eye health. It supports AI-powered personalized reminder messages, making break reminders more engaging and caring.\n\n**Core Design Philosophy**: Unlike traditional timer-based reminders, EyeCare triggers reminders based on continuous work duration, and introduces an eye health system, severity levels, natural break detection, and a pet companion to make eye care a healthy habit.\n\n### Features\n\n#### Core Features\n\n- **Smart Break Reminders** - Triggered by continuous work duration (default 40 min), not simple timers\n- **Eye Health System** - Visual display of eye fatigue (0-100), decays with work time (~1pt per 60s), recovers after breaks\n- **Natural Break Detection** - Detects user idle state (20s threshold), automatically pauses timing; idle \u003e 60s counts as effective break, resets work timer\n- **Severity Levels (1-5)** - Dynamically adjusts reminder tone based on skip count and eye health:\n  - Level 1: Gentle encouragement\n  - Level 2: Friendly reminder\n  - Level 3: Concerned/firm\n  - Level 4: Sarcastic/humorous\n  - Level 5: Dark humor/dramatic\n- **System Sleep Awareness** - Auto-detects system sleep/wake events, pauses and resumes timing\n\n#### Water Reminder\n\n- **Work Schedule Mode** - Smart reminders across 6 office time slots (9:00, 10:30, 11:30, 13:30, 15:00, 17:00, ~1150ml/day)\n- **Fixed Interval Mode** - Customizable reminder interval (10-120 min), daily goal (500-4000ml), and cup size\n- **Progress Tracking** - Real-time display of daily water intake, completion progress, and schedule slot status\n- **Tray Quick Record** - Right-click menu to quickly log a cup of water\n\n#### AI Enhancement\n\n- **Multiple Providers** - SiliconFlow, OpenAI, DeepSeek, Ollama (local), compatible with all OpenAI-format APIs\n- **Context-Aware Messages** - Generates customized reminders based on work time, skip count, eye health, time of day, and user identity\n- **Multiple Styles** - Gentle encouraging, humorous playful, caring, scientific, balanced mode\n- **Local Message Fallback** - 60+ local messages with severity matching when AI is unavailable\n- **Smart Caching** - 1-hour cache for identical contexts, reduces redundant API calls\n- **Rate Limiting** - Max 1 API call per 30 seconds\n- **Timeout Fallback** - 8-second API timeout with automatic fallback to preset messages\n- **Encrypted API Keys** - AES-256-GCM encryption with machine-specific key derivation\n\n#### Pet System\n\n- **Interactive Companion** - Completing boosts mood (+15), skipping decreases mood (-20), petting interaction (+3)\n- **Level Growth** - Accumulated breaks increase pet level (formula: `1 + floor(sqrt(total_breaks))`, max level 99)\n- **XP Progress** - XP needed per level = `level²`, visual level-up progress bar\n- **Achievement System** - Unlock badges (first break, 10/50/100 breaks, level 5/10, etc.)\n- **Mood Decay** - Pet mood decreases by 1 every 5 minutes of continuous work\n- **Custom Naming** - Name your pet (max 12 characters)\n\n#### System Integration\n\n- **System Tray** - Tray icon shows countdown and eye health, right-click menu for quick actions (pause/break/drink/settings/quit)\n- **App Whitelist** - Automatically pause timing in meeting apps (detects foreground app via window title)\n- **Auto Start** - Supports automatic startup on boot (supports `--minimized` for silent launch)\n- **Global Shortcuts** - `Ctrl+Shift+R` for immediate break, `Ctrl+Shift+P` to pause/resume monitoring\n- **4K Backgrounds** - Fullscreen break page supports HD background images (network loading + fade-in animation)\n- **Portable Mode** - Place a `.portable` marker file or `config.json` alongside the executable for portable use\n\n### Tech Stack\n\n| Layer | Technology | Description |\n|-------|-----------|-------------|\n| **Framework** | Tauri v2 | Lightweight cross-platform desktop framework |\n| **Frontend** | HTML5 + CSS3 + Vanilla JavaScript (ES Module) | Zero framework overhead |\n| **Backend** | Rust | High performance, memory safety |\n| **Storage** | JSON config file | Local persistence with encrypted fields |\n| **HTTP** | reqwest + rustls-tls | HTTPS encrypted transport |\n| **Encryption** | ring (AES-256-GCM) | Local API key encryption |\n| **Idle Detection** | Win32 API / Cocoa / XScreenSaver | Native cross-platform idle detection |\n| **Bundling** | NSIS / MSI | Windows installers |\n\n### Project Structure\n\n```\neye-care/\n├── src/                    # Frontend assets\n│   ├── index.html          # Main window (settings panel + status display)\n│   ├── fullscreen.html     # Fullscreen break page (countdown + AI messages + backgrounds)\n│   ├── styles.css          # Global styles\n│   └── main.js             # Frontend logic (Tauri IPC communication)\n├── src-tauri/              # Rust backend\n│   ├── src/\n│   │   ├── main.rs         # Application entry point\n│   │   ├── lib.rs          # Core logic + Tauri command registration\n│   │   ├── idle.rs         # Idle detection + monitoring loop + natural break detection\n│   │   ├── config.rs       # Config management (load/save/encrypt/portable mode)\n│   │   ├── ai.rs           # AI message generation + local message library + cache/rate-limit\n│   │   ├── tray.rs         # System tray + fullscreen window management\n│   │   ├── water.rs        # Water reminders (schedule mode + interval mode)\n│   │   └── crypto.rs       # AES-256-GCM encrypt/decrypt\n│   ├── capabilities/       # Tauri permission configuration\n│   ├── icons/              # Application icons\n│   ├── Cargo.toml          # Rust dependencies\n│   └── tauri.conf.json     # Tauri app configuration\n├── docs/                   # Documentation\n│   ├── SPEC.md             # Requirements specification\n│   ├── MEDICATION_REMINDER.md  # Medication reminder feature design\n│   └── DEVELOPMENT.md      # Development guide\n├── package.json            # Node.js dependencies\n└── LICENSE                 # Apache 2.0 License\n```\n\n### Installation\n\n#### Windows\n\nDownload the installer:\n- `EyeCare_1.0.0_x64-setup.exe` (NSIS installer, user-level install, no admin required)\n- `EyeCare_1.0.0_x64_en-US.msi` (MSI installer)\n\n#### Build from Source\n\n**Prerequisites**:\n- [Node.js](https://nodejs.org/) (v16+)\n- [Rust](https://www.rust-lang.org/tools/install) (v1.70+)\n- Windows: Microsoft Visual Studio C++ Build Tools\n- Linux: `libx11-dev` `libxss-dev` (apt) / `libX11-devel` `libXss-devel` (dnf)\n\n```bash\n# Clone the repository\ngit clone \u003crepository-url\u003e\ncd eye-care\n\n# Install frontend dependencies\nnpm install\n\n# Development mode (hot reload)\nnpm run dev\n\n# Build for release\nnpm run build\n```\n\nBuild output is located at `src-tauri/target/release/bundle/`.\n\n### Configuration\n\nConfig file path (by priority):\n1. **Environment Variable**: `EYECARE_CONFIG_PATH` (file path) or `EYECARE_CONFIG_DIR` (directory)\n2. **Portable Mode**: `config.json` alongside executable (requires `.portable` marker file)\n3. **System Default**:\n   - Windows: `%APPDATA%\\eye-care\\config.json`\n   - macOS: `~/Library/Application Support/eye-care/config.json`\n   - Linux: `~/.config/eye-care/config.json`\n\n#### Configuration Example\n\n```json\n{\n  \"version\": \"1.0.0\",\n  \"idle_threshold\": 40,\n  \"check_interval\": 2,\n  \"break_duration\": 60,\n  \"notify_before_fullscreen\": 5,\n  \"max_skips_per_day\": 3,\n  \"theme_color\": \"#E8F4F8\",\n  \"auto_start\": true,\n  \"ai\": {\n    \"enabled\": true,\n    \"provider\": \"siliconflow\",\n    \"api_base_url\": \"https://api.siliconflow.cn/v1\",\n    \"api_key\": \"enc:\u003cAES-256-GCM encrypted\u003e\",\n    \"model\": \"Qwen/Qwen2.5-7B-Instruct\",\n    \"preferred_style\": \"balanced\"\n  },\n  \"water\": {\n    \"enabled\": true,\n    \"schedule_enabled\": true,\n    \"interval_minutes\": 30,\n    \"daily_goal_ml\": 2000,\n    \"cup_size_ml\": 250\n  }\n}\n```\n\n### Default Settings\n\n| Setting | Default | Range | Description |\n|---------|---------|-------|-------------|\n| Break Interval | 40 min | 5-120 min | Continuous work duration before break reminder |\n| Break Duration | 60 sec | 15-120 sec | Countdown duration for each break |\n| Max Skips | 3/day | 1-10 | Enters forced rest mode when exceeded |\n| Notification Delay | 5 sec | 0-30 sec | Wait time from notification to fullscreen |\n| Check Interval | 2 sec | 1-10 sec | Idle state polling interval |\n| Auto Start | Enabled | - | Automatically run on system startup |\n| Theme Color | #E8F4F8 | 3 presets | Light blue / Warm beige / Natural green |\n\n### Default Whitelist Apps\n\nTencent Meeting, Zoom, Teams, Skype, DingTalk, Feishu, Tencent QQ, WeChat, Enterprise WeChat, Slack, Webex, GoTo Meeting, Google Meet\n\n### Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Ctrl+Shift+R` | Take a break now (global) |\n| `Ctrl+Shift+P` | Pause/resume monitoring (global) |\n| `Esc` | Close fullscreen break page |\n\n### Platform Support\n\n| Platform | Idle Detection | Whitelist | Bundle Format |\n|----------|---------------|-----------|---------------|\n| Windows | GetLastInputInfo | Window title detection | NSIS / MSI |\n| macOS | NSEvent | - | DMG (planned) |\n| Linux | XScreenSaver | - | AppImage (planned) |\n\n### Roadmap\n\n| Version | Feature | Status |\n|---------|---------|--------|\n| v0.2.0 | Eye break + Water reminder + AI messages + Pet system | Done |\n| v0.3.0 | **Medication Reminder** - Multi-med management, escalation alerts, dose confirmation, stock alerts | Planned |\n| v0.4.0 | **AI Medication Assistant** - Consultation dialog, smart scheduling, adherence reports | Planned |\n| v0.5.0 | Drug interaction detection, medication log export, multi-device sync | Future |\n\n\u003e Detailed medication reminder design: [docs/MEDICATION_REMINDER.md](docs/MEDICATION_REMINDER.md)\n\n### License\n\n[Apache License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguangshu100%2Feyecare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguangshu100%2Feyecare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguangshu100%2Feyecare/lists"}