我们每天都在产生大量和自己有关的数据。步数、心率、睡眠、HRV、压力、训练状态,这些数据几乎时时刻刻都在被手表、手机和各种设备记录下来。问题是,大多数时候,它们只停留在厂商的 App 里。你可以看图表,可以翻历史记录,但很难真正把它们接入自己的知识系统、日程系统,或者个人 AI 助手。这是我一直觉得可惜的地方。
我一直很喜欢Mathematica 以及 Wolfram|Alpha 的发明者 Stephen Wolfram 那种用数据理解人生的方式。很多年前,他就展示过如何通过长期积累的数据来观察自己的生活模式:Stephen Wolfram:以数据诠释人生。那种感觉很震撼:原来一个人的作息、节奏、投入和变化,真的可以在数据中留下轨迹。可惜的是,今天大多数人的健康数据虽然更多了,却依然被困在封闭的系统里,难以成为真正可用的个人上下文。

于是我做了一个开源项目:Clawhealth。它的目标不是单纯把 Garmin 运动手表数据“读出来”,而是把这些原本散落的个人健康信号,真正接入 OpenClaw 生态,让它们可以被本地 Agent 理解、调用、分析,并进一步参与到日常决策之中。比如,Agent 不再只是回答你“今天睡得怎么样”,而是可以根据连续的睡眠、HRV 和训练状态,判断你今天更适合高强度工作、轻量安排,还是应该主动多休息一点。
Clawhealth 到底做了什么
Clawhealth 是一个以 OpenClaw 为第一目标的个人健康数据工具。目前它已经接入 Garmin 生态,可以同步你的 Garmin 手表数据,并把这些数据保存到本地 SQLite 数据库中,供 OpenClaw 以结构化方式调用。它的能力包括:Garmin 账号登录、MFA 验证、每日健康汇总同步、睡眠分期、HRV、训练指标、活动详情,以及适合 Agent 使用的 JSON 输出。
这件事看起来像是“把手表数据存一下”,但我真正关心的并不是存储本身,而是它背后的意义。过去,健康数据更多只是“展示型数据”。你看见它,知道自己昨天睡了几个小时、走了多少步、压力值怎么样,然后就结束了。它很少真正进入你的长期系统,也很少能和你的工作节奏、学习计划、恢复状态形成联动。而一旦这些数据被同步到本地、变成稳定可访问的结构化数据,意义就不一样了。它可以成为个人 AI 的长期上下文。它可以和你的待办事项、日程安排、工作日志、笔记系统结合起来。它甚至可以参与一个更完整的反馈回路:身体状态影响建议,建议影响安排,安排又反过来影响第二天的状态。
我想做的,不是“再看一个图表”,而是让健康数据真正有用。
为什么我坚持本地运行
我觉得这个项目最坚持的一点,其实不是 Garmin,也不是 OpenClaw,而是:健康数据不应该被轻易交给额外的第三方服务。
身体数据和普通应用数据不一样。它们非常私人,而且往往带有长期连续性。心率、睡眠、HRV、压力、训练状态,这些东西一旦被系统化地积累下来,几乎就是一个人的生理画像。
所以 Clawhealth 的设计重点之一,就是尽量把事情放在本地做。这个技能完全运行在用户自己的本地 OpenClaw 环境中。Garmin 的账号凭据和会话数据不会离开设备,也不会发送给技能作者或额外的第三方服务。同步后的数据落到本地 SQLite 中,后续 Agent 读取的是本地结构化结果,而不是去外部系统来回取数。
这意味着,你得到的不只是“能同步”,而是一种更安心的工作方式:你的数据在本地。你的凭据在本地。你的后续分析能力,也在本地。这一点对所有人来说都非常重要。
为什么要接到 OpenClaw
Garmin App 本身当然已经很好了。它能展示很多统计结果,也能给出一些基础判断。但它的问题也很明显:它是一个封闭系统。它知道你的身体状态,却并不知道你今天的工作安排、学习计划、项目压力、写作节奏、会议密度。它很难真正理解“你这个人”。
而 OpenClaw 的价值恰恰在于,它不是一个单独的健康 App,而是一个带记忆、可扩展、可接入多种上下文的个人 AI 助手环境。把 Garmin 数据接进去,意义就在于:健康数据终于不再是孤岛。从这个角度看,Clawhealth 不是一个“运动手表工具”,而更像是个人健康数据进入 AI 工作流的一道入口。
它现在已经能做什么
Clawhealth 当前已经覆盖了几类很关键的数据能力。它可以同步每日健康汇总,比如步数、总睡眠、压力、Body Battery、SpO2、呼吸和体重等;也可以进一步获取更细的数据,比如睡眠分期与睡眠评分、HRV、训练指标、活动列表与活动详情。数据既可以落入 SQLite,也可以输出成适合 OpenClaw Agent 调用的 JSON。
这套设计同时满足了两种需求:一方面,SQLite 适合做长期积累和后续分析。你可以把它看成是自己的健康数据底座。另一方面,JSON 输出适合让 Agent 在当下直接读取和使用。你可以把它看成是 AI 助手即时理解身体状态的接口。也就是说,它不是只偏“存储”,也不是只偏“问答”,而是两边都照顾到了。
接入过程其实不复杂
Clawhealth 安装过程很简单,只需要把技能拉到 OpenClaw 的 skills 目录中即可。你把项目地址(https://github.com/ernestyu/clawhealth)发给OpenClaw,让它严格按照README的指令安装即可。
或者,你把下面这段指令发给它,让它直接执行,效果也一样:
git clone https://github.com/ernestyu/clawhealth.git /home/node/.openclaw/workspace/clawhealth_temp
mv /home/node/.openclaw/workspace/clawhealth_temp/skills/clawhealth-garmin /home/node/.openclaw/workspace/skills/
rm -rf /home/node/.openclaw/workspace/clawhealth_temp
账号配置与MFA
如果OpenClaw报告一切就绪,下一步是配置用户名与密码。
安全问题是这个项目关心的重点。我们强调不应该把自己的健康第三数据交付给第三方应用。Clawhealth技能完全在你的本地 OpenClaw 环境中运行。Garmin 的账号凭据和会话数据不会离开你的设备。不会向技能作者或任何第三方服务发送任何数据。因此也需要你自己与OpenClaw沟通用户名与密码。
有两种方式:
- 第一种,如果信得过大模型供应商,你可以直接告诉OpenClaw自己的Garmin网站登陆用户名和密码。但是我更推荐如下,
- 第二种:用户自己到本地终端手工配置。其实也很简单,就是把下面这段命令拷贝并粘贴到终端,敲下回车即可。需要注意的是,命令当中的
[email protected]和YOUR_GARMIN_PASSWORD需要替换为你真实的Garmin网站登陆用户名和密码。这个方式更符合“本地优先”的原则。
例如:
docker exec -it openclaw bash -c '
cd ~/.openclaw/workspace/skills/clawhealth-garmin &&
printf "[email protected]\nCLAWHEALTH_GARMIN_PASSWORD_FILE=./garmin_pass.txt\n" > .env &&
printf "YOUR_GARMIN_PASSWORD" > garmin_pass.txt &&
chmod 600 .env garmin_pass.txt &&
echo "配置完成,请回到聊天界面触发登录。"
'
这个设计有一个很实际的好处:它尽量避免把密码直接写成明文环境变量,而是通过文件引用的方式处理,后续也更方便自动化运行。
让数据开始流动
登录(MFA)与同步分两步。以下指令全部是OpenClaw自己根据SKILL.md执行,不需要你真正理解。
第一步是触发 Garmin 登录并发起 MFA:
python ~/.openclaw/workspace/skills/clawhealth-garmin/run_clawhealth.py garmin login --username [email protected] --json
这时 Garmin 会向你的注册邮箱发送验证码。你把验证码交给 OpenClaw,它会再执行第二步:
python ~/.openclaw/workspace/skills/clawhealth-garmin/run_clawhealth.py garmin login --mfa-code 123456 --json
登录完成后,系统通常会先跑一次最小状态检查。如果数据库还没有建立,会返回一个“数据库尚不存在”的结果。这是正常现象,因为本地 health.db 只有在第一次执行同步后才会生成。
接着,就可以同步最近几天的数据,例如:
python skills/clawhealth-garmin/run_clawhealth.py garmin sync \
--since 2026-03-16 \
--until 2026-03-18 \
--json
同步成功后,本地数据库就有了连续几天的健康数据。至于某些字段偶尔返回空值,这也未必是错误,很多时候只是因为对应功能没有开启,或者当前设备本身不支持。
数据接入之后呢
如果只是把 Garmin 数据搬到本地,这件事还不够吸引人。它真正有意思的地方在于:从这一步开始,Agent 可以第一次持续地接触一个人的身体状态。比如:假设 Agent 在清晨读取 daily-summary 的 JSON 输出,发现今天的训练准备度偏低,HRV 也处于较低水平波动,那么它就不只是“告诉你一个结果”,而是可以进一步结合你的日程和任务安排,判断今天下午是否不适合重强度深度工作,是否应该减少会议,或者主动留出恢复时间。这就是我觉得最值得期待的地方。
健康数据不再只是展示信息,而开始变成决策输入。AI 不再只是泛泛地聊天,而开始根据你的真实身体状态给建议。个人系统也不再只是管理时间,而是开始同时管理精力和恢复。这其实是在把“数字化自我”往前推进一步。
这不是终点,而只是一个开始
Clawhealth 现在首先接入的是 Garmin。未来它还可能继续接入其他可以读取数据的运动手表、体脂秤和更多健康设备。
一旦你接受了“健康数据应该进入个人 AI 系统”这个前提,那么后面要做的事情就不再只是多接一个设备,而是在慢慢建立一个真正属于自己的数字身体层。
它可以很小,从每天的睡眠、步数和 HRV 开始。也可以一步一步变大,进入更完整的健康、认知、工作与恢复闭环。而我做 Clawhealth 的初衷,就是想把这件事从概念变成可运行的现实。
对我来说,这不是“再做一个工具”。这更像是在回答一个问题:当我们已经拥有越来越多关于自己的数据时,能不能让这些数据不再沉睡在 App 里,而是真正进入我们自己的系统,成为个人 AI 的一部分?
我想,答案应该是可以的。而 Clawhealth,就是我为这个答案迈出的第一步。
如果你喜欢这个项目和它的理念,请记得登录Github给它打一颗星。