Speediance Gym Monster
/install speediance
Speediance — Gym Monster CLI Skill
Talk to your Speediance (Gym Monster) smart cable machine from any agent. Read completed workouts and push custom programs that appear on the machine ready to run — no app navigation mid-session.
Unofficial — reverse-engineered from the Android app. Personal use, your own account only. Built on the MIT-licensed
UnofficialSpeedianceWorkoutManager(hbui3) andspeediance-influx(gavinmcfall).Tested on Gym Monster v1 (
SPEEDIANCE_DEVICE_TYPE=1). GM2 is untested.
Setup (one time)
Install the CLI:
pip install git+https://github.com/stozo04/speediance-cli
speediance-cli login # authenticates and caches a token
Or clone and run as a module (no install needed):
git clone https://github.com/stozo04/speediance-cli && cd speediance-cli
pip install -r requirements.txt
python -m speediance login
Once installed, speediance-cli and python -m speediance are interchangeable.
Credentials
Set as environment variables — the CLI reads them automatically:
| Variable | Required | Default | Notes |
|---|---|---|---|
SPEEDIANCE_EMAIL |
✓ | — | Account email |
SPEEDIANCE_PASSWORD |
✓ | — | Account password |
SPEEDIANCE_REGION |
— | Global |
Global or EU |
SPEEDIANCE_DEVICE_TYPE |
— | 1 |
1 = Gym Monster v1 |
Alternatively, write a config.json in the working directory (gitignored by the repo):
{
"email": "[email protected]",
"password": "yourpassword",
"region": "Global"
}
Commands
Read workouts
speediance-cli workouts --days 7 --json # recent sessions (summaries)
speediance-cli session \x3Ctraining_id> --json # full per-set detail for one session
Sample workouts --json output:
[
{
"training_id": 123456,
"title": "Upper Body",
"date": "2025-06-15",
"duration_secs": 2700,
"calories": 320,
"volume": 4200.0,
"type": "Strength"
}
]
Sample session \x3Cid> --json output:
{
"training_id": 123456,
"completion_rate": 0.95,
"exercises": [
{
"name": "Seated Dual-Handle Lat Pulldown",
"sets": [
{"set": 1, "reps": 12, "target_reps": 12, "weight": 20.0, "max_hr": 148, "left_right": 0}
]
}
]
}
"Free Lift" (freestyle) sessions return totals only — no per-set detail. Sessions started from a program return full set data.
Browse the exercise catalog
speediance-cli library --search "chest" --json # filter by name or muscle
speediance-cli library # save full catalog to library.json
Returns [{id, name, muscle, tab}]. The id is required for plan JSON.
A committed library.json snapshot ships with the repo (Gym Monster v1) for offline
browsing — regenerate with speediance-cli library to get the freshest catalog or a
different device's exercises.
Create a training program
Author a plan JSON, then push it — the program appears on the machine immediately:
speediance-cli push plan.json --dry-run # preview payload, no network write
speediance-cli push plan.json # create it on the account
Plan JSON format:
{
"name": "Pull Day",
"exercises": [
{
"id": 434,
"title": "Seated Dual-Handle Lat Pulldown",
"sets": [
{"reps": 12, "weight": 20, "mode": 1, "rest": 75},
{"reps": 10, "weight": 22, "mode": 1, "rest": 75},
{"reps": 8, "weight": 25, "mode": 1, "rest": 90}
]
},
{
"id": 291,
"title": "Seated Row",
"sets": [
{"reps": 12, "weight": 18, "mode": 1, "rest": 60}
]
}
]
}
| Field | Type | Notes |
|---|---|---|
id |
int | From speediance-cli library — IDs differ per account/device |
weight |
float | Kilograms |
mode |
int | 1=Standard, 2=Eccentric, 3=Isokinetic, 4=Constant, 5=Spotter |
rest |
int | Seconds between sets |
Optional: Markdown week-sheet sync
If you keep workout logs as WEEKS/Week-XX.md Markdown checklists, sync writes a
completed session into the matching file automatically:
speediance-cli sync --weeks-dir /path/to/WEEKS --date today
speediance-cli sync --weeks-dir /path/to/WEEKS --date 2025-06-10
This is entirely opt-in — ignore it if you don't use that convention. Core commands
(login, workouts, session, library, push) never need a sheets folder.
Full command reference
| Command | What it does | --json |
|---|---|---|
login |
Authenticate and cache a token in .token.json |
— |
workouts [--days N] |
List recent completed sessions | ✓ |
session \x3Ctraining_id> |
Full per-set detail for one session | ✓ |
library [--search X] [--out FILE] |
Dump or search exercise catalog | ✓ |
push \x3Cplan.json> [--dry-run] |
Create a training program on the account | ✓ |
sync [--date DATE] [--weeks-dir DIR] |
(Optional) Write session into Markdown sheet | — |
Conventions
- stdout is parseable with
--json; all human-readable hints go to stderr. - Secrets:
config.json,.token.json,.envare gitignored — never commit them. - Token caching: after the first login, the token is cached in
.token.jsonand refreshed automatically on expiry. - Dry-run first: always use
--dry-runbeforepushwhen authoring new programs to confirm exercise IDs resolved correctly. - If an endpoint breaks after a Speediance app update,
speediance/client.pyis where all API calls live.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install speediance - 安装完成后,直接呼叫该 Skill 的名称或使用
/speediance触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Speediance Gym Monster 是什么?
Read completed workouts (summaries and full per-set detail), browse and export the exercise catalog, push custom training programs to your Speediance (Gym Mo... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 30 次。
如何安装 Speediance Gym Monster?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install speediance」即可一键安装,无需额外配置。
Speediance Gym Monster 是免费的吗?
是的,Speediance Gym Monster 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Speediance Gym Monster 支持哪些平台?
Speediance Gym Monster 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Speediance Gym Monster?
由 Steven Gates(@stozo04)开发并维护,当前版本 v1.0.1。