garmin-pulse

💪 您的私人Garmin健康数据管家

🥥69总安装量 20评分人数 26
100% 的用户推荐

基于Garmin官方API的安全数据同步工具,将健康数据离线存储为Markdown,实现完全本地化的隐私保护与便捷查阅。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 代码安全规范:无 eval/exec/system/subprocess 等危险函数,依赖版本已锁定,无动态代码加载行为
  • ✅ 隐私保护完善:密码使用 getpass 安全输入,不显示在屏幕或存储于 shell 历史;数据仅本地存储,无向第三方传输
  • ✅ 通信安全:仅与 Garmin 官方 API (connect.garmin.com) 通信,不连接其他外部服务器
  • ⚠️ 依赖社区维护库:核心依赖 garminconnect 和 cloudscraper 为社区维护,非 Garmin 官方 SDK
  • ⚠️ 安全功能妥协:需要用户禁用 Garmin 账户的 2FA 才能正常使用该技能
  • ⚠️ 令牌生命周期管理:OAuth 令牌缓存有效期约一年,到期需重新执行认证流程

使用说明

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 依赖(garminconnectcloudscraper),无需手动 pip 安装;4)支持自动化工作流,可配置 cron 定时任务实现每日早晨自动同步,保持数据实时更新。

潜在缺点与局限性方面,该技能要求用户禁用 Garmin 账户的双因素认证(2FA),这在安全敏感场景下可能不适用。此外,依赖的 garminconnectcloudscraper 为社区维护库,非官方 SDK,存在长期维护不确定性。OAuth 令牌一年有效期后需重新认证,且云端的 Cloudflare 防护偶尔可能导致同步中断。

适合的目标群体主要为注重数据隐私的个人 Garmin 用户、希望离线查看健康数据的极客用户,以及需要将健康数据纳入本地知识库管理(如 Obsidian、Logseq)进行长期分析的用户。对于企业级安全要求、必须使用 2FA 或不信任第三方库的用户则不适用。

使用风险主要包括:依赖社区的第三方库可能存在潜在安全漏洞(尽管当前无已知 CVE)、令牌过期导致的服务中断需手动重新认证,以及需要手动配置和管理 cron 定时任务的运维负担。建议用户定期备份 health/ 目录中的个人健康数据,并关注依赖库的安全更新。

garmin-pulse 内容

文件夹图标scripts文件夹
手动下载zip · 9.9 kB
sync_garmin.pytext/plain
请选择文件