记忆

Workout Claw

试用

Log workouts, track progress, compute PRs, edit/delete sessions via a local CLI. Local-first, JSON storage.

它能做什么

Log workouts, track progress, compute PRs, edit/delete sessions via a local CLI. Local-first, JSON storage.

技能文档

workout-claw

Local-first gym workout tracker. Plain-JSON storage at ~/.workout-claw/. Invokable as a CLI by an agent — no MCP server, no daemon.

Setup

This skill ships a SKILL.md manifest via ClawHub, but the workout-claw CLI binary lives on npm. Both layers are required.

openclaw skills install workout-claw    # installs this SKILL.md
npm install -g workout-claw             # installs the CLI binary

Requires Node >= 20. Once both are installed, the CLI is on PATH and other skills can invoke it.

When to invoke

User describes a workout session, asks about progress, or wants to see a PR. Examples that should trigger this skill:

  • "I just did chest day — bench 4x10 at 60, incline DB 4x12 at 20, triceps 4x12 at 40"
  • "Log today's workout"
  • "What's my bench PR?"
  • "Show my back workouts from the last 4 weeks"
  • "What did I do at the gym today?"

How to invoke

Use the workout-claw CLI via Bash. All commands output YAML to stdout, errors to stderr.

Log a workout

workout-claw log "bench 4x10@60, incline-db-press 4x12@20, triceps-pushdown 4x12@40"

Optional flags:

  • --muscle back | legs | chest | shoulders | arms | core | full | cardio | other. If omitted, inferred from weekday (Mon=back, Wed=legs, Fri=chest per ~/.life/domains/health.md).
  • --cardio "" — e.g. "incline-walk 20min @4.5kmh i6" (minutes, speed kmh, incline)
  • --note "" — free-text note
  • --date YYYY-MM-DD — override date
  • --time HH:MM — override time

Input syntax

x@ per entry, comma-separated for multiple exercises.

  • Multi-word exercise names use dashes: incline-db-press, barbell-row
  • Bodyweight: pullups 4x10@bw
  • All weights in kg

Query history

workout-claw history --muscle chest --weeks 4
workout-claw history --exercise bench

Get a PR

workout-claw pr bench

Returns best estimated 1RM via Epley formula: weight × (1 + reps/30).

Cross-day muscle volume (v0.3+)

workout-claw volume --muscle back --weeks 4
workout-claw volume --muscle chest --weeks 8

Aggregates volume per exercise, not per session. Pullups on chest day count toward back volume; triceps-pushdown counts toward arms. Returns total kg lifted, sets, reps, days trained, and a per-date breakdown.

This is the right query for tracking weekly volume per muscle group — far more accurate than history --muscle X which is session-grain.

Summary of today

workout-claw summary
workout-claw summary --date 2026-05-15

Most recent session

workout-claw last

Returns the latest session across all dates — useful for "what did I do at the gym?" without naming a date.

Delete a session

workout-claw delete 

Session IDs come from the id field in any log / summary / last output. No confirmation prompt — the CLI is non-interactive by design.

Edit a session

workout-claw edit 

Opens the session JSON in $EDITOR (defaults to vi). On save: validates JSON, refuses to save if the id was changed. On parse error: original session unchanged. Useful for fixing typos in exercise names or set counts without a full delete + re-log.

Agent note: edit requires an interactive editor, so the agent should not invoke this in a Telegram round-trip. Instead, when a user asks to fix a logged workout via Telegram, prefer delete + log again, or hand back the session ID and tell the user to run workout-claw edit from their terminal.

Data location

  • ~/.workout-claw/logs/.json — one JSON file per day, array of sessions
  • Schema: see src/lib/types.ts in the workout-claw repo

Notes for the agent

  • After logging, relay the YAML summary back to the user in a readable form (don't dump raw YAML)
  • If the user names an exercise that doesn't match the dash-naming convention, normalize before invoking (e.g. "incline DB press" → incline-db-press)
  • Session-level --muscle is inferred from weekday — only set explicitly if the user names a non-standard split (e.g. arm day on a Tuesday). Per-exercise muscle tags are inferred automatically at log time via name lookup (pullups→back, bench→chest, etc.), so no extra input is needed.
  • When user describes cardio separately, use --cardio flag. When they describe both lifting + cardio in one breath, use both.
  • For "how much back/chest/leg volume?" questions, prefer volume --muscle X over history --muscle X — volume aggregates per-exercise, history filters per-session.

相关技能

Use this skill when an installed `intervals` CLI should be used to query Intervals.icu, inspect activities, create scheduled workout events, create workout l...

21 次安装

Audit an OpenClaw agent workspace and generate standardized evaluation reports, scores, and patches. Use when asked to review memory quality, retrieval effic...

32 次安装

Create WorkoutSummary notes from strength-training recordings or transcripts. Accepts audio (.m4a, .mp3, .wav, .caf) and transcript files (.md, .txt, .srt, .vtt, .json); outputs total time, exercises completed, sets/reps, durations, and concise coach notes.

1 次安装

Use when the user wants OpenClaw or Codex to remember their way of working as reusable SOPs, workflows, queues, or "how I do things". Best for repeated multi...

16 次安装

Use when a user wants OpenClaw to manage several interleaved conversation threads inside one chat, keep a primary mission in focus, classify side topics, ass...

23 次安装

Project-based conversation logging for OpenClaw. Use when setting up daily auto-logging across parallel projects, building conversational continuity between...