| name | workout |
| description | Track workouts, log sets, manage exercises and templates with workout-cli. Supports multi-user profiles. Use when helping users record gym sessions, view history, or analyze strength progression. |
| metadata | {"clawdbot":{"emoji":"🏋️","requires":{"bins":["workout"]}}} |
Workout CLI
CLI for tracking workouts, managing exercises, and analyzing training progress.
Installation
curl -fsSL https://raw.githubusercontent.com/gricha/workout-cli/main/install.sh | bash
Then add to PATH: export PATH="$HOME/.workout-cli/bin:$PATH"
Quick Reference
| Action | Command |
|---|
| Start workout | workout start --empty or workout start <template> |
| Log sets | workout log bench-press 135 8,8,7,6 |
| Add note | workout note "Felt strong" |
| Swap exercise | workout swap bench-press dumbbell-bench-press |
| Finish | workout done |
| View last | workout last |
| Check PRs | workout pr |
| Undo last set | workout undo |
| Edit a set | workout edit bench-press 2 155 8 |
| Delete a set | workout delete bench-press 3 |
Multi-User Profiles
Multiple people can track workouts independently using profiles.
workout profile list
workout profile create sarah
workout profile delete old-profile
When multiple profiles exist, specify which one:
workout --profile mike start push-day
workout --profile mike log bench-press 185 8
workout --profile mike done
- Single profile: Commands work without
--profile (backwards compatible)
- Shared exercises: Exercise library is shared across all profiles
- Per-user data: Templates, workouts, config, and current session are per-profile
Workout Sessions
Start a Workout
workout start --empty
workout start push-day
workout start --continue
Log Sets
workout log bench-press 135 8,8,7,6
workout log squat 135 10
workout log squat 185 8
workout log squat 225 5,5,5
workout log deadlift +10 5
workout log bench-press 185 8 --rir 2
Notes
workout note "Elbow felt tight on pulling movements"
workout note lat-pulldown "Dropped weight due to elbow"
Swap & Add
workout swap bench-press dumbbell-bench-press
workout add face-pulls
Finish or Cancel
workout done
workout cancel
Check Status
workout status
Undo, Edit & Delete Sets
Fix mistakes during a workout without canceling:
workout undo
workout undo bench-press
workout edit bench-press 2 155 8
workout edit bench-press 2 --reps 10 --rir 2
workout delete bench-press 3
Set numbers are 1-indexed.
Exercise Library
List Exercises
workout exercises list
workout exercises list --muscle chest
workout exercises list --type compound
Add Custom Exercise
⚠️ All three options required:
workout exercises add "Bayesian Cable Curl" \
--muscles biceps \
--type isolation \
--equipment cable
workout exercises add "Single Arm Cable Row" \
--muscles back,lats \
--type compound \
--equipment cable
Show/Edit/Delete
workout exercises show bench-press
workout exercises edit bench-press --notes "Pause at bottom"
workout exercises delete my-custom-exercise
Templates
workout templates list
workout templates create "Push Day" \
-e "bench-press:4x8-12, overhead-press:3x8-10, lateral-raise:3x12-15"
workout templates show push-day
workout templates delete push-day
History & Analytics
Last Workout
workout last
workout last --full
Exercise History
workout history bench-press
workout history squat --last 20
Personal Records
workout pr
workout pr bench-press
workout pr --muscle chest
Shows weight × reps with estimated 1RM.
Volume Analysis
workout volume
workout volume --week
workout volume --month
workout volume --by muscle
workout volume --by exercise
Progression
workout progression bench-press
Typical Session
workout start --empty
workout log lat-pulldown 100 10,10,9,8
workout note lat-pulldown "Dropped from 120 due to elbow"
workout log single-arm-cable-row 40 12,12,10
workout log single-arm-cable-row 45 10,10
workout note "Pull day - elbow still recovering"
workout done
Data Storage
~/.workout/
exercises.json # Exercise library
workouts/ # Completed sessions
JSON Output
All commands support --json:
workout pr --json
workout last --json
workout history squat --json
Gotchas
- exercises add requires all three:
--muscles, --type, --equipment
- Weights are in lbs by default
- Multiple calls to
log at different weights work fine (common pattern)
swap moves all logged sets to the new exercise
note <exercise> <text> adds note to specific exercise; note <text> adds session note
References