用途
Oura 是一个 Oura Ring 健康数据助手技能,用于连接 Oura Ring API,向用户展示其睡眠、准备度(readiness)、活动与压力等健康数据。当用户提及 Oura、睡眠评分、准备度评分、活动评分、步数、心率等内容时适用。
主要能力
- 每日健康仪表盘:获取当天准备度、睡眠、活动、压力四个端点的数据,并以分块形式展示评分与关键指标。
- 个人资料与戒指配置:展示年龄、体重、身高、生理性别、邮箱等个人信息,以及硬件类型、颜色、设计、固件版本、尺寸、设置日期等戒指详情。
- 多日查询:按日期范围查询单个或多个端点数据,支持睡眠、准备度、活动、压力、血氧、心率、运动、冥想/呼吸会话等。
- 相关性分析:分析指标之间的关系(如睡眠是否影响准备度),支持同日或隔日(offset)相关性,适用于 daily_sleep、daily_readiness、daily_activity、daily_spo2、heartrate。
- 恢复分析:分析运动恢复成本,支持按活动类型过滤、预测假设运动的恢复成本(需足够历史数据),并给出洞察与警告。
使用方式
首次使用需配置凭据:运行 /oura setup,输入 Oura client_id 与 client_secret,存储于 ~/.oura/config.json。凭据获取方式:访问 https://cloud.ouraring.com/oauth/applications 注册新应用,重定向 URI 设为 http://localhost:8910/callback,注册后复制 client_id 与 client_secret。
随后运行 /oura auth 完成 OAuth2 授权,浏览器打开 Oura 授权页,授权码在 localhost:8910/callback 自动捕获,令牌存储于 ~/.oura/tokens.json。
常用命令:
/oura status:检查认证状态。/oura:运行每日健康仪表盘。/oura profile:查看个人资料与戒指配置。
查询脚本示例:
cd {project_root}/.claude/skills/oura/scripts && node query.mjs --endpoint <name> --start YYYY-MM-DD --end YYYY-MM-DD
cd {project_root}/.claude/skills/oura/scripts && node query.mjs --endpoints <name1>,<name2>,<name3> --start YYYY-MM-DD --end YYYY-MM-DD
cd {project_root}/.claude/skills/oura/scripts && node query.mjs --correlate <name1>,<name2> --start YYYY-MM-DD --end YYYY-MM-DD --offset <days>
恢复分析示例:
cd {project_root}/.claude/skills/oura/scripts && node recovery.mjs --days 90
cd {project_root}/.claude/skills/oura/scripts && node recovery.mjs --activity pickleball --days 90
cd {project_root}/.claude/skills/oura/scripts && node recovery.mjs --activity pickleball --predict --predict-duration 90 --predict-intensity hard
日期范围推导:未指定时默认最近 7 天;“this week”/“last 7 days”为 7 天前至今天;“last 2 weeks”为 14 天前;“this month”/“last 30 days”为 30 天前;“last 3 months”/“last 90 days”最多取 60 天前。若用户请求超过 60 天,使用 60 天并告知 Oura API 仅提供约 60 天历史数据。
适用场景
- 查看当天或近期的睡眠、准备度、活动、压力评分与指标。
- 查询多日趋势,如本周睡眠、上月活动。
- 分析指标间关系,如睡眠是否影响准备度。
- 评估运动恢复成本、预测假设运动的恢复时间、安排训练计划。
- 查看个人资料与戒指设备信息。
限制
- 需要 Node.js 22+,脚本为 ESM(.mjs 文件)。
- 首次授权会请求全部 OAuth 范围(personal、daily、heartrate、workout、tag、session、spo2),之后无法追加,需重新认证。
- Oura API 仅提供约 60 天历史数据。
- 部分数据需要有效的 Oura 会员资格。
- 相关性分析不适用于 daily_stress、workout、session(无数字评分)。
- 恢复预测模式需要足够的历史数据,否则仅展示历史模式并提示还需多少次运动。
- 令牌在到期前 60 秒内自动刷新。
- 凭据与令牌存储于本地文件,不会提交到版本控制。
- 未同步的数据区块会被完全省略;若全部未同步则显示提示。
- 评分显示为“pending”表示数据存在但评分尚未计算。
- 错误处理包括未配置、未认证、令牌过期、速率限制、需要会员、需要更新应用、访问被禁止等情况,并给出对应提示。