Garmin Pulse 是一款专注于将 Garmin Connect 健康数据同步到本地 Markdown 文件的开源工具。该技能通过安全的 OAuth 认证机制,将用户的睡眠、活动、心率、压力、身体电量、HRV、SpO2 及体重等多维度健康数据离线存储,实现完全本地化的个人健康数据管理。
核心用法方面,用户首先需要通过命令行执行一次性设置,使用 getpass 安全输入密码获取 OAuth 令牌(缓存于 ~/.garminconnect/,有效期约一年)。随后可通过 uv run 命令同步今日、指定日期或过去 N 天的数据。同步后的数据以结构化的 Markdown 格式存储于 health/ 目录,便于阅读、搜索和版本控制。若需回答健康相关问题,Agent 将直接读取对应日期的 Markdown 文件。
显著优点包括:1)安全性设计周到,密码输入采用交互式 getpass 提示,避免明文显示于屏幕或记录于 Shell 历史;2)数据完全本地化,不涉及任何第三方服务器传输,仅与 Garmin 官方 API 通信;3)依赖管理现代化,使用 uv 工具自动处理 Python 依赖(garminconnect、cloudscraper),无需手动 pip 安装;4)支持自动化工作流,可配置 cron 定时任务实现每日早晨自动同步,保持数据实时更新。
潜在缺点与局限性方面,该技能要求用户禁用 Garmin 账户的双因素认证(2FA),这在安全敏感场景下可能不适用。此外,依赖的 garminconnect 和 cloudscraper 为社区维护库,非官方 SDK,存在长期维护不确定性。OAuth 令牌一年有效期后需重新认证,且云端的 Cloudflare 防护偶尔可能导致同步中断。
适合的目标群体主要为注重数据隐私的个人 Garmin 用户、希望离线查看健康数据的极客用户,以及需要将健康数据纳入本地知识库管理(如 Obsidian、Logseq)进行长期分析的用户。对于企业级安全要求、必须使用 2FA 或不信任第三方库的用户则不适用。
使用风险主要包括:依赖社区的第三方库可能存在潜在安全漏洞(尽管当前无已知 CVE)、令牌过期导致的服务中断需手动重新认证,以及需要手动配置和管理 cron 定时任务的运维负担。建议用户定期备份 health/ 目录中的个人健康数据,并关注依赖库的安全更新。