关于 health-data
health-data 用于查询和分析本地 SQLite 数据库中的 Apple Health 数据,提供常用报告,也支持直接编写 SQL 进行自定义分析。
主要功能
- 01生成每日和每周健康摘要
- 02查询睡眠、生命体征、活动和锻炼
- 03输出 Markdown、JSON、FHIR R4 和 ASCII
- 04使用 SQL 进行自定义分析
适用场景
- 01查看每日步数、卡路里和心率
- 02比较每周活动量与静息心率
- 03分析睡眠阶段和每晚时长
- 04将健康测量数据导出为 FHIR R4
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill health-data安装后在 Claude Code 中输入/health-data确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.claude-plugin/plugin.jsonreferences/fhir_mappings.mdschema.mdscripts/health_query.py详细介绍
Apple Health 数据查询技能
查询并分析本地 SQLite 数据库中的健康数据,其中包含 43 种健康指标的 630 多万条记录。
数据库位置
~/data/health.db
查询方法
1. Python 脚本(常见查询推荐)
使用 scripts/health_query.py 执行预构建查询并自动格式化:
# Daily summary
python ~/.claude/skills/health-data/scripts/health_query.py --format markdown daily --date 2025-11-29
# Weekly trends
python ~/.claude/skills/health-data/scripts/health_query.py --format json weekly --weeks 4
# Sleep analysis
python ~/.claude/skills/health-data/scripts/health_query.py --format fhir sleep --days 7
# Latest vitals
python ~/.claude/skills/health-data/scripts/health_query.py vitals
# Activity rings
python ~/.claude/skills/health-data/scripts/health_query.py --format json activity --days 30
# Workout history
python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running
# Custom SQL
python ~/.claude/skills/health-data/scripts/health_query.py --format json query "SELECT * FROM workouts LIMIT 5"
输出格式: markdown、json、fhir、ascii
2. 直接使用 SQL(自定义/临时查询)
如需灵活查询,可直接对数据库运行 SQL。表结构和查询模板请参阅 references/schema.md。
sqlite3 ~/data/health.db "SELECT AVG(value) FROM health_records WHERE record_type LIKE '%HeartRate%' AND start_date LIKE '2025-11%'"
预构建查询
每日健康摘要
获取今天的关键指标:
python ~/.claude/skills/health-data/scripts/health_query.py daily
返回:步数、卡路里、心率(平均值/最小值/最大值)、运动分钟数、距离、活动圆环状态。
每周趋势
比较每周表现:
python ~/.claude/skills/health-data/scripts/health_query.py weekly --weeks 4
返回:每日平均步数、静息心率、运动分钟数、每周锻炼次数。
睡眠分析
分析睡眠模式:
python ~/.claude/skills/health-data/scripts/health_query.py sleep --days 14
返回:每晚睡眠时长、睡眠阶段(核心睡眠、深度睡眠、REM 睡眠)、平均睡眠小时数。
最新生命体征
获取最近的生命体征读数:
python ~/.claude/skills/health-data/scripts/health_query.py vitals
返回:心率、HRV、静息心率、血氧、呼吸频率及其时间戳。
活动圆环
追踪圆环完成情况:
python ~/.claude/skills/health-data/scripts/health_query.py activity --days 30
返回:每日圆环值/目标、完成百分比、完美日数量。
锻炼历史
查看锻炼记录:
python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running
返回:锻炼类型、时长、距离、卡路里,以及按类型汇总的数据。
输出格式
Markdown(默认)
以易于阅读的表格和列表呈现。最适合报告和摘要。
JSON
供程序使用的结构化数据:
{
"date": "2025-11-29",
"metrics": {
"steps": 8542,
"active_calories": 450.5,
"heart_rate": {"avg": 72.3, "min": 52, "max": 145}
}
}
FHIR R4
医疗健康互操作格式。以 FHIR Bundle 输出,其中包含使用 LOINC 代码的 Observation 资源。代码映射请参阅 references/fhir_mappings.md。
ASCII
适用于终端的输出,包含条形图和统计信息:
============================================================
DAILY SUMMARY - 2025-11-29
============================================================
METRICS
----------------------------------------
steps 2620
active_calories 234.5
heart_rate avg: 67.5 min: 52 max: 108
ACTIVITY RINGS
----------------------------------------
move [███████░░░░░░░░░░░░░] 36.7% (238/650)
exercise [░░░░░░░░░░░░░░░░░░░░] 0.0% (0/35)
stand [████████████████████] 100.0% (10/10)
常见 SQL 模式
临时查询可使用 references/schema.md 中的以下模式:
按小时统计心率(昼夜节律模式):
SELECT strftime('%H', start_date) as hour, ROUND(AVG(value), 1) as avg_hr
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierHeartRate'
AND value BETWEEN 40 AND 200
GROUP BY hour ORDER BY hour;
本月每日步数:
SELECT DATE(start_date) as day, SUM(value) as steps
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierStepCount'
AND start_date >= DATE('now', 'start of month')
GROUP BY day ORDER BY day;
睡眠质量(深度睡眠 + REM 睡眠小时数):
SELECT DATE(start_date) as night,
ROUND(SUM(duration_minutes)/60.0, 1) as quality_hours
FROM sleep_sessions
WHERE sleep_stage IN ('Deep', 'REM')
GROUP BY night ORDER BY night DESC LIMIT 14;
锻炼摘要:
SELECT REPLACE(workout_type, 'HKWorkoutActivityType', '') as type,
COUNT(*) as count, ROUND(SUM(duration_minutes)) as total_min
FROM workouts
WHERE start_date >= DATE('now', '-30 days')
GROUP BY type ORDER BY count DESC;
可用记录类型
数据库包含 43 种健康指标类型,包括:
生命体征: 心率、HRV、静息心率、血氧、呼吸频率、血压
活动: 步数、距离、活动卡路里、基础代谢卡路里、爬楼层数、运动时间、站立时间
行动能力: 步行速度、步幅、步行不对称性、楼梯速度、步行稳定性
身体: 体重、BMI、体脂百分比
音频: 环境噪声、耳机音量
其他: VO2 Max、日光照射时间、紫外线照射
数据覆盖范围
- 记录: 630 多万条测量数据
- 日期范围: 2015-10-13 至今
- 锻炼: 1,435 次
- 睡眠记录: 40,514 条
- 活动天数: 1,875 份每日摘要
资源
scripts/
health_query.py- 主要查询工具,支持 Markdown/JSON/FHIR 输出
references/
schema.md- 数据库架构、记录类型映射、SQL 查询模板fhir_mappings.md- LOINC 代码和 FHIR R4 模板
故障排除
未找到数据库:
确保 ~/data/health.db 存在。从 /Users/server/apple_health_export/ 运行导入脚本:
python import_health.py --status
日期范围内没有数据: 检查可用日期范围:
SELECT MIN(start_date), MAX(start_date) FROM health_records;
异常值: 筛选符合生理范围的值(例如,心率为 40-200 bpm):
WHERE value BETWEEN 40 AND 200