关于 workout-tracker
Workout Tracker 是一项将健身活动记录到本地 SQLite 数据库并查看过往表现的技能。它可根据以往训练自动补全休息时间,还能识别图片中的健身器材并建议练习项目。
主要功能
- 01将运动详情记录到 SQLite
- 02查看训练历史
- 03根据过往训练补全休息时间
- 04识别图片中的健身器材
- 05生成图像报告
适用场景
- 01训练后记录组数、次数和重量
- 02查看特定练习的进展
- 03识别器材后记录训练
- 04分享适合手机查看的训练报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marswangyang/ workout-tracker --skill workout-tracker安装后在 Claude Code 中输入/workout-tracker确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.gitignoreREADME.md_meta.jsonscripts/pyproject.tomllog.pyrender.pymodels.pymain.pyreport.py详细介绍
Workout Tracker
一项使用本地 SQLite 数据库记录和跟踪健身活动的技能。
功能
- 记录训练: 记录锻炼详情。
- 查看历史记录: 查看以往的训练表现。
- 智能休息时间: 如果未提供休息时间,则根据之前的训练自动填充。
- 视觉识别: 可从图片中识别健身器材并推荐相应锻炼。
用法
1. 记录训练
当用户说“我用 60kg 做了 5 组卧推,每组 8 次”时,解析详情并运行:
cd skills/workout-tracker/scripts && uv run log.py \
--exercise "Bench Press" \
--weight 60 \
--unit kg \
--sets 5 \
--reps 8 \
--body_part "Chest" \
--rest_time 90 # Optional: User provided or leave empty to auto-fill
--notes "Optional notes"
参数:
--exercise(必填):动作名称。--body_part:**(新增)**目标肌群(例如 Chest、Back、Legs)。如果未提供,请推断(例如 Bench -> Chest)。--weight(必填):重量数值。--unit:'kg' 或 'lb'(默认 kg)。--sets:组数。--reps:每组次数。--rest_time:秒数。**如果用户没有指定,请省略此项。**脚本会根据历史记录自动填充。
2. 查看历史记录
当用户询问“我的深蹲进步如何?”或“显示最近的训练记录”时:
cd skills/workout-tracker/scripts && uv run render.py --exercise "Squat"
然后发送生成的图片:
message(action="send", filePath="/tmp/workout_report.png", message="Here is your report:")
3. 图片识别(视觉)
如果用户上传图片(例如器械图片):
- 使用视觉能力分析图片。
- 识别器材(例如“腿举机”“哑铃”)。
- 询问用户:“这看起来是台腿举机。要记录一组吗?重量是多少?”
- 用户回复后,照常使用
log.py脚本。
设计与行为规则(用户偏好)
1. 用户档案
- 类型: 普通用户(休闲)。
- 交互方式: 使用自然语言。除非动作存在歧义,否则应根据动作名称自动推断
body_part(例如,“Bench Press” -> “Chest”),无需询问。
2. 显示格式(手机竖屏)
- 首选输出: 始终使用
render.py为报告生成图片。 - 样式: 采用适合手机屏幕的竖向纵横比。
- 布局:
- 窄宽度(
figsize宽度约为 6)。 - “Notes”列中的长文本换行显示。
- 如果按单个动作筛选,则隐藏“Exercise”列(标题已足够说明上下文)。
- 在当天/同一训练时段内按时间顺序排列(从最早到最新)。
- 窄宽度(
3. 记录逻辑
- 递减组: 必须作为单独的行记录,以确保数据准确。
- 休息时间: 递减组各阶段之间设为
0。 - 备注: 标记为“Drop set part X/Y”,以便清楚识别。
- 休息时间: 递减组各阶段之间设为
- 单位: 用户偏好使用 lb(磅)。
数据库
数据存储在 skills/workout-tracker/workout.db(SQLite)中。
架构包含 date、exercise、weight、unit、sets、reps、rest_time 和 notes。
技术设置(维护)
此技能使用 uv 进行 Python 包管理。
安装
- 确保已安装
uv:brew install uv - 同步依赖:
cd skills/workout-tracker/scripts uv sync
数据库架构(SQLModel)
SQLite 数据库(workout.db)使用以下架构:
id:整数(PK)date:ISO8601 字符串exercise:字符串body_part:字符串(目标肌群)weight:浮点数unit:字符串(默认 "kg")sets:整数reps:整数rest_time:整数(秒,可选)notes:字符串(可选)
评论
支持 Markdown