核心用法
Garmin Connect CLI(gc)是一款面向高级用户的命令行工具,通过非交互式接口读取 Garmin 生态中的健康、运动与设备数据。安装后使用邮箱密码完成一次性认证,即可通过简洁的命令结构获取数据。
数据维度覆盖全面:
- 日常健康:步数、爬楼、活动强度、事件提醒
- 生理指标:静息/全天候心率、睡眠、压力、身体电量、呼吸率、血氧、血压
- 运动记录:活动列表、详细分段、配速、功率区间、装备关联、天气数据
- 进阶指标:VO2max、HRV、训练准备度、训练状态、耐力评分、乳酸阈值、骑行FTP、赛事预测
- 设备管理:多设备切换、闹钟、太阳能充电数据
- 训练体系:训练计划、结构化训练创建/下载/删除、 menstrual cycle 追踪
输出灵活性:默认表格视图适合快速查看,--format json 支持程序化解析,--output 可直接写入文件。日期系统支持自然语言(today/yesterday/week/month)与精确日期,大幅降低脚本编写成本。
显著优点
1. 官方数据源的完整性:直接对接 Garmin Connect 后端,获取手表同步后的全量数据,比第三方同步工具(如 Strava API)覆盖更深的原生指标(如身体电量、训练准备度)。
2. 自动化友好:纯 CLI 设计无 GUI 依赖,天然适合 Cron 定时任务、CI/CD 流水线、数据仓库 ETL 等场景。
3. 结构化训练操控:罕见的支持通过 JSON 或命令行参数创建结构化训练(间歇、目标心率区),对骑行/跑步课表自动化管理极具价值。
4. 数据可移植性:支持 FIT/GPX/TCX/KML/CSV 多格式导出活动原始文件,便于迁移至其他分析平台。
潜在局限与风险
认证安全:工具要求以明文参数或交互式输入传递邮箱密码,虽支持 MFA,但密码存储与命令历史可能泄露敏感凭证。建议配合 macOS Keychain 或 1Password CLI 等密码管理工具封装调用。
非官方实现:基于 Homebrew 第三方 tap 分发(voydz/homebrew-tap),非 Garmin 官方维护,存在 API 变更导致失效的风险,长期稳定性依赖社区维护。
只读为主:除训练/活动上传外,核心健康数据为只读,无法通过 CLI 修改步数、睡眠等记录。
速率限制:高频调用可能触发 Garmin 服务端限流,大规模历史数据拉取需实现指数退避重试机制。
适合人群
- 量化自我(QS)实践者构建个人健康数据库
- 耐力运动教练自动化抓取学员训练数据
- 数据工程师将 Garmin 数据接入 BI 或机器学习 pipeline
- 开发者构建健康类应用的 Garmin 集成层
常规风险
- 凭证泄露:命令行历史、脚本文件、进程列表可能暴露明文密码
- 隐私合规:导出的 JSON/CSV 包含精确 GPS 轨迹与生理数据,需符合 GDPR/本地数据保护法规
- 供应链风险:Homebrew tap 的更新与签名验证需关注社区安全实践