OpenFit 是一个基于 Electron + React + TypeScript 的桌面端 Fitbit / Google Health 数据仪表盘,并集成了 Codex 驱动的健康数据问答助手。它主要通过 Google Health API v4 读取 Fitbit 设备同步到云端后的健康数据,提供私密、本地优先的可视化分析体验。项目已可构建,支持 Demo 模式;若要访问个人真实健康数据,需要用户自行在 Google Cloud 中创建 OAuth Client 并授权。
适用领域
健康数据分析 / Fitbit / Google Health 生态 / 桌面应用 / Electron 应用开发 / React 前端可视化 / OAuth 集成 / AI 健康助手 / 个人数据仪表盘
配置难度
中高。Demo 模式运行较简单,但接入真实 Fitbit / Google Health 数据需要理解 Google Cloud、OAuth Consent Screen、Scopes、Redirect URI、Token 安全存储和 Electron 桌面应用机制。适合有一定前端、Node.js、OAuth 或 Electron 经验的开发者。
商业价值
该项目适合作为个人健康数据桌面应用、Google Health API 集成样板、Electron 安全 OAuth 架构参考,以及 AI 健康助手原型。对中国开发者而言,它的直接商业化价值受 Google 服务可访问性、Fitbit 设备普及度、Google Health API 可用性和健康数据合规要求限制;但在技术验证、海外用户工具、企业内部健康数据看板、可穿戴设备数据分析产品原型方面具有较高参考价值。
01
技术亮点
- 项目完成度较高,README 明确说明应用可构建,Demo 模式可直接运行
- 技术栈现代:Electron、React、TypeScript、Tailwind CSS v4、shadcn/Radix、assistant-ui
- 默认使用 Google Health API v4,符合 Fitbit Web API 逐步废弃的趋势
- 采用本地优先设计,OAuth Token 和健康缓存保存在 Electron 主进程,并通过 safeStorage 加密
- 渲染进程不直接接触 OAuth 凭据,安全边界设计较清晰
- 支持自适应界面:无数据的指标和页面会自动隐藏,避免空卡片
- 提供 Codex 健康助手,可基于当前健康数据上下文进行问答
- Codex 桥接默认为只读沙箱,禁用审批和工具调用,降低误操作风险
- README 中提供了非常详细的 Google Cloud / OAuth 配置说明和常见错误排查
- 包含测试、UI 捕获、打包命令和发布文档,适合开发者二次开发
02
目标用户
- 使用 Fitbit 或 Google Health 设备并希望在桌面端查看数据的个人用户
- 希望研究 Google Health API v4 / Fitbit 数据接入方式的开发者
- 需要构建 Electron + React 桌面健康仪表盘的前端或全栈开发者
- 关注本地优先、隐私保护型健康数据应用的产品或技术团队
- 希望结合 Codex / OpenAI 做个人健康数据问答助手的开发者
03
配置要求
- 真实 Fitbit / Google Health 数据访问需要 Google Cloud 项目
- 需要启用 Google Health API
- 需要配置 OAuth Consent Screen,Audience 选择 External
- 测试模式下需要将 Fitbit 使用的 Google 账号添加为 Test User
- 需要创建 Web application 类型的 OAuth Client
- OAuth Redirect URI 必须精确配置为:http://127.0.0.1:42813/oauth/callback
- 需要在 OpenFit 中填写 Client ID 和 Client Secret
- 需要添加 Google Health 只读 scopes,包括 activity_and_fitness、health_metrics_and_measurements、ecg、irn、location、nutrition、profile、settings、sleep 等
- 不要添加写权限 scope
- Codex 健康助手需要本机安装并登录 Codex Desktop;项目本身不需要 OpenAI API Key
- Linux 上安全存储依赖可用的 secret store;macOS 使用 Keychain,Windows 使用 Credential Manager
- 如果公开分发,建议将 OAuth code exchange 移至后端,并完成 Google 验证和安全审查
04
适用场景
- 在 macOS、Windows 或 Linux 桌面端查看 Fitbit 健康数据
- 通过 Google Health API 同步活动、睡眠、心率、ECG、SpO2、HRV、营养、位置等只读健康指标
- 使用 Demo 模式体验健康数据仪表盘,无需配置 Google OAuth
- 用作 Google Health API OAuth 授权、PKCE、loopback callback 的参考实现
- 用作 Electron 主进程安全存储 OAuth Token 和健康缓存的示例
- 通过 Codex Desktop 对已同步的健康指标进行自然语言问答和分析
- 参考其 UI 设计原则构建自适应、无空状态卡片的健康数据看板
05
部署与配置
- 安装 Node.js 22 或更高版本
- 安装 npm 10 或更高版本
- 克隆仓库:git clone https://github.com/FlavioAdamo/openfit.git
- 进入项目目录:cd openfit
- 安装依赖:npm install
- 启动开发环境:npm run dev
- 如只想体验功能,可直接使用 Demo 模式,无需 Google OAuth 配置
- 如需使用健康助手,需要安装 Codex Desktop,并登录 Codex 账号
- 构建渲染端:npm run build
- 运行测试:npm test
- 执行 Electron 视觉 QA:npm run capture:ui
- 打包桌面应用:npm run dist,生成文件位于 release/ 目录
06
风险与注意事项
- 项目未声明 license,商业使用或二次分发存在法律不确定性
- Google Health API 和 OAuth 配置步骤较复杂,普通用户上手门槛较高
- OAuth 测试模式下 refresh token 通常 7 天过期,需要重新连接
- 桌面应用内分发 Client Secret 并不是强安全模型,公开发布时应改为后端换码
- Fitbit Air 不提供公开蓝牙同步接口,OpenFit 无法替代手机端配对、固件升级或设备同步
- 部分指标受设备型号、地区、Google/Fitbit 账号权限和同步状态影响,可能无法显示
- Google Health API 生态和 Fitbit 迁移政策仍可能变化,存在维护风险
- 健康助手会在用户主动聊天时将压缩后的健康数据上下文发送给 Codex/OpenAI,需要注意隐私合规
- 项目 stars 约 190,社区规模不算大,长期维护能力需要观察
- 未签名打包产物可能在 macOS 或 Windows 上触发安全警告
2026-06-27
第29名
新收录 · github_search