dsh-fitness: Tracking Weightlifting Workouts with Local SQLite in DSH

前言

DeepSeek Harness(DSH)把会话、工作区和插件 bundle 放在同一套本地工作台里。健身记录若只靠聊天窗口里的零散对话,事后很难按天、按动作做统计;若单独再开一个 App 或表格,又和助手上下文脱节。下面介绍社区插件 dsh-fitness(维护者 hardlic):向 Agent 注册 fitness_log 工具,并在网页左侧栏提供「健身」画报面板,数据落在本机 SQLite,不联网、无账号。

这是什么

dsh-fitness 是 DSH 生态里的一个 bundle:装进 DSH 后,接入 DSH 的模型可通过标准 JSON Schema 调用 fitness_log;可选安装同仓库的 ui/ 画报包,在左侧插件栏出现「健身」入口。分类上属于社区目录中的「记忆」类插件;训练与计划数据默认保存在 $DSH_HOME/dsh-fitness/fitness.sqlite($DSH_HOME 一般为 ~/.dsh)。

核心功能

Agent 工具 fitness_log

同一工具通过 action 区分八种能力,返回结构化 JSON,便于助手转述。

action 作用
log 记录一次训练:动作、组数、每组次数、重量、日期、备注
today 查看当天训练记录
history 按动作或天数查历史
stats 周报:总组数、总容量(组数×次数×重量)、各动作容量榜
plan_add 新建训练计划(计划名、星期、动作列表)
plan_list 列出全部计划
plan_remove 删除计划
plan_today 今天该练什么,并对照完成度(还差几组)

左侧栏健身画报(ui/,README 标注 v0.3 形态)

画报围绕本地单机记录设计,与 fitness_log 共用 fitness.sqlite;面板还提供 quick-log、check-item、unlog 等窄写接口,便于在网页里快速记、打卡、撤销,而不必每次开聊天。

主要能力包括:

  • 周历条:周一到周日、当天容量高亮;可点日期切换;支持前后翻周与「回今天」。
  • 任意日期详情:选中日的计划对照与全部记录;非当日可补录(快速记录带日期);「打卡」按钮仅在当天显示。
  • 连续打卡:从今天或昨天起向前统计连续有记录的天数。
  • 时间轴:计划项与已记录动作,支持一键打卡与撤销单条记录。
  • 训练流水:近 30 / 90 / 365 天按天分组,点一行跳到对应日期。
  • 快速记录:例如 4x8@60 或 12,10,8@40 一行写入。
  • 本周概览:训练天数、总组数、总容量、本周打卡天数;浏览历史周时统计对应该周。
  • 训练计划、动作榜、健身建议:建议项包括训练频率、计划完成度、动作休眠、部位平衡、容量趋势等(基于本地数据生成)。

README 中 v0.1 阶段曾说明面板以只读聚合为主、记录优先走聊天工具;自 v0.2.0 起面板已支持直接记录并与工具共用数据库,安装前请以当前仓库 README 与版本为准。当前 package 版本为 0.3.1(见仓库 package.json)。

安装与启用

前置条件:已安装 DeepSeek Harness,并具备可用的 plugin_manager。

资料中的安装步骤为先取得仓库目录,再在 DSH 内安装 bundle(任选其一):

git clone https://github.com/hardlic/dsh-fitness.git
plugin_manager install_bundle target=<克隆目录>

或在 DSH 插件页「添加插件」中选择上述本地目录。

画报面板(可选,与主插件同仓库的 ui/):

plugin_manager install_bundle target=<克隆目录>/ui

npm 侧:README 说明包名 dsh-fitness 已被占用,发布名为 @hardlic/dsh-fitness;发布后可用:

dsh plugin add @hardlic/dsh-fitness

(是否已发布以 npm 与仓库说明为准。)

运行时要求:package.json 中 engines.node 为 >=22.5;插件通过 cordis.patch.yml 注入 Loader,卸载 bundle 即移除对应行。

典型用法

  1. 练完后对助手说:「记一下,深蹲 4 组 8 次 80 公斤」——对应 fitness_log 的 log。
  2. 次日问:「今天该练什么?」——对应 plan_today,按计划与已完成组数回答。
  3. 打开网页左侧栏「健身」,查看周历、流水、本周概览与建议。

也可在面板内用快速记录或计划页(v0.3.0 起支持在面板内新建、编辑、删除计划)操作,与聊天工具写入同一数据库。

数据、架构与适用注意

数据与隐私:表 sets(训练记录)、plans(训练计划);无遥测;删除 fitness.sqlite 即清空插件数据。

架构要点(来自 README):根目录 lib/index.js 以 Cordis 插件 apply(ctx) 注册 fitness_log,使用 Node node:sqlite 的 DatabaseSync;ui/ 宿主侧只读连接聚合为 HTTP(如 /fitness-panel/api/data),客户端注册 DSH 的 main 与 sidebar.panellist 插槽。

适用场景:希望在 DSH 内用自然语言记训练、查历史与周报,并可选可视化侧栏的用户;不适合需要手环三环、社交或云端账号同步的场景(README 明确不做这些)。

安全与信任:插件以当前 DSH 进程权限读写本机文件;安装前应阅读 源码 与 MIT 许可证。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-fitness 把「对话记训练」和「本地可视化」收进同一个 DSH bundle:Agent 侧八类 fitness_log 动作,Web 侧可选画报与 SQLite 持久化。需要细节与更新记录时,以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye