- Home
- Plugins
- Tools & Capabilities
- dsh-fitness
dsh-fitness
hardlic/dsh-fitness
Workout logging plugin: a fitness_log agent tool (log, history, stats, weekly plans) storing data in local SQLite; the repo also ships a separate optional left-rail panel bundle under ui/.
Install
dsh plugin --profile web add github:hardlic/dsh-fitnessREADME
dsh-fitness 🏋️
DeepSeek Harness 生态插件:在你的 AI 助手里加一套健身打卡能力——Agent 工具(
fitness_log)+ 左侧栏可视化画报面板。本地优先,不联网、无账号,数据存本机 SQLite。
DeepSeek Harness(DSH)是一个可扩展的本地 AI 工作台:插件以 bundle 形式安装,向 Agent 注册工具、向网页注册界面。dsh-fitness 就是这样一个 bundle——装进 DSH 后,你的助手(含接入 LLM 的任意 Agent)就能替你做健身记录和统计,网页左侧栏还会长出一个「健身」画报页。
DSH 生态里的位置
DeepSeek Harness
├─ 会话 / 工作区 / 记忆 / 日程 …… ← DSH 本体能力
├─ 第三方插件(可选生态) ← 你装的一个个 bundle
│ ├─ dsh-fitness ← 本插件
│ │ ├─ Agent 工具:fitness_log(记/查/统计/计划)
│ │ └─ Web 面板:健身画报(ui/)
│ ├─ 其他插件(QQ 助手、语音、日历……) ← 可与本插件共存
│ └─ ……
└─ 数据目录 $DSH_HOME
└─ dsh-fitness/fitness.sqlite ← 本插件的数据(只在你机器上)
功能
一、Agent 工具 fitness_log
装了本插件,你的助手就拥有 8 个健身动作(同一个工具的 8 种 action):
| action | 能做什么 | 示例说法 |
|---|---|---|
log | 记录一次训练:动作、组数、每组次数、重量、日期、备注 | 「记一下,卧推 4组 8次 60公斤」 |
today | 查看今天的训练记录 | 「今天我练了啥?」 |
history | 按动作/天数查历史 | 「深蹲最近两周是多少重量?」 |
stats | 周报:总组数、总容量(组数×次数×重量)、各动作容量榜 | 「这周练得怎么样?」 |
plan_add | 新建训练计划:计划名、星期几、动作列表(组×次@重量) | 「帮我建个周一练胸日:卧推4组8次60公斤、夹胸3组12次」 |
plan_list | 列出所有计划 | 「我的训练计划都有什么?」 |
plan_remove | 删除计划 | 「删掉计划 3」 |
plan_today | 今天该练什么 + 完成对照(哪些动作还差几组) | 「今天该练什么?」 |
工具对 Agent 使用标准 JSON Schema 声明,任何接入 DSH 的模型都能正确调用;返回结构化 JSON(训练记录/统计/计划),助手可自然地转述给你。
二、健身画报(左侧栏 Web 面板,ui/)v0.3
围绕本地单机训练记录的实际需求设计:
- 周历条:周一~周日 + 日期 + 当天容量,今天高亮;点任意日期切换查看;‹ › 可前后翻周(浏览任意历史周),「回今天」一键返回
- 任意日期详情:选中的那天不管是上周还是上个月,都能看到当天计划对照与全部记录;非当日在面板补录(
记录变补录),打卡按钮仅今天出现 - 连续打卡:🔥 N 天(从今天或昨天往前连续有记录的天数)
- 时间轴:选中日的计划项(⭕/✅ + 一键「打卡」)与已记录动作(组×次@kg + ✕ 撤销)
- 训练流水:近 30 / 90 / 365 天按天分组列表(动作 + 条数 + 当天容量),点一行直接跳到那天
- 快速记录:动作 +
4x8@60/12,10,8@40一行写入,不必开聊天 - 本周概览:训练天数 / 总组数 / 总容量 / 本周打卡 X/7(翻到历史周时显示该周)
- 训练计划、动作榜、健身建议(保留)
- 面板自带窄写接口(quick-log / check-item / unlog),与
fitness_log工具共用同一 SQLite
安装后在左侧插件栏生成「健身」图标,点开即可使用。旧版只读看板说明如下(v0.1 形态):
- 统计卡片:近 7/30/90 天训练天数、总组数、总容量(吨)
- 训练计划:全部计划列表,今天该练的计划高亮「今天」
- 今日计划对照:每个动作 ✅ 完成 / ⭕ 已 X 组;没安排时提示「休息日」
- 今日训练:今天每条记录(动作、组×次@kg、备注、单条容量)
- 动作榜:近 N 天各动作容量排名
- 训练历史:按天分组,显示当天练了什么 + 当天容量
- 健身建议(根据你的真实数据动态生成):
- 训练频率:本周 0 练提醒从 30 分钟开始;连练 ≥6 天提醒安排休息日
- 计划完成度:今天还差几组
- 动作休眠:某动作 ≥10 天没练,提醒别掉队
- 部位平衡:近两周缺推/拉/腿哪一类
- 容量趋势:本周 vs 上周容量变化(涨/跌超 20% 给对应提醒)
- 常驻原则:渐进超负荷、蛋白质与睡眠建议
面板只读数据库;记录仍通过
fitness_log工具(聊天里说一句话即可),避免两边写冲突。
安装
前置:已安装 DeepSeek Harness,并有可用的插件管理器(plugin_manager)。
git clone https://github.com/hardlic/dsh-fitness.git
然后在 DSH 里安装本插件(任选其一):
- 让助手执行:
plugin_manager install_bundle target=<克隆目录> - 或 DSH 的插件页面「添加插件」选择本地目录
安装画报面板(可选,同一个仓库的 ui/):plugin_manager install_bundle target=<克隆目录>/ui
npm 渠道:dsh-fitness 名字已被他人占用,本项目发布名为 @hardlic/dsh-fitness(发布后可用 dsh plugin add @hardlic/dsh-fitness)。
使用流程
- 练习结束,对助手(或接入了 DSH 的 QQ 机器人)说:「记一下,深蹲 4组 8次 80公斤」
- 第二天问:「今天该练什么?」——助手按计划对照完成度回答
- 打开网页左侧栏「健身」,看统计、历史、动作榜和建议
数据与隐私
- 全部数据存本机:
$DSH_HOME/dsh-fitness/fitness.sqlite($DSH_HOME默认~/.dsh) - 表:
sets(训练记录)、plans(训练计划) - 不联网、无账号、无遥测;删除文件即清空全部数据
架构
- 根目录 = 插件包:
lib/index.js导出 Cordis 插件apply(ctx),通过ctx.inject(['tools'])注册fitness_log;node:sqlite的DatabaseSync存储数据 ui/= 画报包:宿主半index.js用只读 SQLite 连接把数据聚合为一个 HTTP 接口(/fitness-panel/api/data);浏览器半client.js注册到 DSH 的main与sidebar.panellist插槽渲染cordis.patch.yml:向 DSH 的 Loader 插入插件行,安装即生效,卸载即移除
开发
node --test test/smoke.mjs # 插件冒烟测试(会创建/清理临时库)
node --check ui/index.js # 画报宿主半语法检查
CI:GitHub Actions 在每次 push / PR 跑上述检查。
License
MIT © hardlic
更新记录
v0.3.1
- 历史浏览:周历条新增 ‹ › 翻周(可回到任意历史周,下一周到本周为止)与「回今天」按钮——过了一周也能回看之前的训练
- 任意日期详情:
/data支持date/anchor参数,选中日的计划对照与记录直接查库,不再受 30 天窗口限制;过去的日子可补录(快速记录自动带日期) - 训练流水:日程页新增「近 N 天训练流水」卡片(按天分组:动作列表 + 条数 + 容量),点一行跳到那天;范围 30 / 90 / 365 天一键切换
- 非今日隐藏「打卡」按钮(补录用快速记录),统计卡「本周打卡」在历史周显示为「该周打卡」
- 新增测试
test/panel-history.mjs(任意日期 / 任意周 / 无效参数回退)
v0.3.0
- 训练计划页:「日程 / 训练计划」双页签;计划可在面板内新建、编辑、删除(名称、星期、动作行:组/次/kg),不再只能靠聊天
- 交互动画:页签下划线动画、卡片渐入、日期 chip 弹性反馈、打卡勾选弹出动画、进度条缓动、操作结果 toast 提示
- 交互优化:每个计划支持「全部打卡」一键写入;今日进度条(完成 x/y)实时更新;输入框聚焦高亮与回车提交;删除计划二次确认
- 计划写接口:
/plan-add、/plan-update、/plan-remove
v0.2.2
- 适配 DSH 面板布局规范:root 自适应滚动(overflow:auto)、max-width 1040、13px 正文、640px 响应式两列
- 修复文字被裁剪:内容不再被截断,长文案自动换行;周历条改弹性布局
- 字号恢复为 DSH 常规(12~13.5px),统计数字放大,按钮 13px
v0.2.1
- 修正画报显示逻辑:同一动作不再出现「计划行 + 记录行」两行,改为一行一事项(已完成项直接带实际组次与完成时间)
- 分「待完成 / 已完成」两段展示
- 时间轴显示完成时间(来自记录 createdAt)
- 布局适配 DSH 窄侧栏:紧凑行高、缩小卡片内边距、周历条「今」字 chip
v0.2.0
- 画报面板重构为「日程」形态:周历条、连续打卡(streak)、时间轴打卡
- 面板可直接记录 / 一键打卡 / 撤销(新增
quick-log、check-item、unlog接口) - 本周概览(训练天数、组数、容量、X/7)
- 只做本地训练记录需要的功能,不做会员 / 社交 / 三环(没有手环数据源)
- 插件的
fitness_log工具不变,两侧共用fitness.sqlite
v0.1.0
- 首发:
fitness_log工具 + 左侧栏画报(只读)+ MIT 发布
Related plugins
archify (deepseek-harness)
tt-a1i/archify
next-ai-draw-io (dsh-plugin)
dayuanjiang/next-ai-draw-io
WeKnora (dsh-weknora)
tencent/weknora
weknora
tencent/weknora