A CLI tool to create, save, and track progress of kettlebell workouts.
Project description
Table of Contents
kettlebells is a CLI designed to create, save, and track the progress of kettlebell workouts. The inspiration for this project came from Pat Flynn’s conversation with Bret Jones. (For a more detailed look at Iron Cardio, go checkout the Iron Cardio Book by Bret Jones.) After starting an initial project that focused only on iron cardio, I wanted to be able to add more. This is essentially a fork of the iron-cardio project designed to add various workouts such as the armor building complex, and dry fighting weight.
As of version 0.2.1, the way workouts are constructed has completely changed. This will allow users to construct their own custom workouts in the future. It will also allow the stats to keep track of how many reps of each type of exercise have been done.
Installation
Use pipx.
pipx install kettlebells
Usage
Initialize
Run the init
command to create the database.
kettlebells init
Next, run the setloads
command. This sets the units to either pounds (lbs) or kilograms (kg), the user’s bodyweight, and the loads for the light, medium, and heavy kettlebell. This command can be run as needed when the user is ready to move up in load or bodyweight changes.
kettlebells setloads
Commands
save
The save
command saves workouts to the database. The current options are:
When run with no option, the save
command will attempt to use the most recently generated random workout. Otherwise, use the --workout-type
option to manually enter a workout, e.g.:
kettlebells save --workout-type abc
-
abfb
When the
save
command is run with the workout type ofabfb
, an armor building formula barbell workout is saved. Currently, the user can choose from variations of Program One, Program Two, and Program Three.kettlebells save --workout-type abfb
-
abf
When the
save
command is run with the workout type ofabf
, an armor building formula workout is saved. This program alternates between the armor building complex and double kettlebell press. See the Dan Jon Bookstore for more detailskettlebells save --workout-type abf
-
dfw
When the
save
command is run with the workout type ofdfw
, a dry fighting weight workout is saved. See the original post for more detailskettlebells save --workout-type dfw
-
btb
The save command with a workout type of
btb
allows the user to save a Back to Basics Workout. These workouts are constructed based on The Pat Flynn Show episode with Dan John The BEST Kettlebell Program for GEGINNERS | THE BTBKP. The choices are ladders of 2-3-5 clean and presses followed by either snatches or double front squats. The warm up and cool exercises are not included in the workout.kettlebells save --workout-type btb
The program options are:
First block Second Block 2 ladders 60 Snatches 3 ladders 80 Snatches 5 ladders 100 Snatches 2 ladders 10 sets of 5 Double Front Squats 3 ladders 10 sets of 5 Double Front Squats 5 ladders 10 sets of 5 Double Front Squats -
pw
The save command with a workout type of
pw
saves versions of Dan John’s Perfect Workout. While in the video Dan does hip thrusts until it burns, for ease of recording the workout,kettlebells
offers a set number of reps for the hip thrust.kettlebells save --workout-type pw
The program options are:
Variation Exercises Sets Reps Original Half-kneeling Press 3 8 Hanging Leg Raise 3 8 Banded Hip Thrust 3 15 Bulgarian Goat Bag Swing 3 8 Goblet Squat / Broomstick Overhead Squat 1 8 Indoor Half-kneeling Press 3 8 Child’s Pose 3 20 secs Hip Thrust / Clam Shell (15, 14, 13…) 1 120 Goblet Squat / Broomstick Overhead Squat 1 8 The Bull Half-kneeling Press 3 8 Hanging Leg Raise 3 8 Bulgarian Goat Bag Swing 3 8 Bent Over Rows 3 8 Goblet Squat / Broomstick Overhead Squat 1 8 -
rop
The save command with a workout type of
rop
saves versions of Pavel Tsatsouline’s rite of passage program from Enter The Kettlebell. The clean and press and pullups are calculated as ladders, while the swings and snatches are straight sets.kettlebells save --workout-type rop
-
wolf
The save command with a workout type of
wolf
saves workouts from the free program The Wolf from Geoff Neupert. This is a gasser for sure.kettlebells save --workout-type wolf
-
custom
When the
save
command is run with the workout type ofcustom
, the user can save a custom workout. Custom workouts need aworkout_type
and avariation
. The default iscustom
. Exercises are chosen via iterfzf. SelectOther
to add a custom exercise. SelectDone
or press escape when finished adding all the exercises.kettlebells save --workout-type custom
-
Reps and Loads for Custom Exercises
Unilateral exercises such as the single arm overhead press (simply “Press” in the program) should have the reps doubled. For example, if the set and rep scheme is 3 sets of 8 single arm overhead presses on the left and right arm, that should be saved as 16 reps per set for that exercise.
When the stats are calculated, any exercise that has “Double” in it has the load multiplied by 2. So Double Pressing a pair of 24 kg kettlebells should be saved as a load of 24 kg, but the calculations will result in 48 kg per rep. If using uneven sized bells, use the average weight of the two bells rounded to the nearest integer.
-
Suggested Use for Complexes
Consider a workout out like the 8 - 5 - 3 Rep Scheme from Pat Flynn. The
workout_type
would be “complex”, thevariation
would be “8-5-3 Rep Scheme”. Technically, a set consists of 8 Goblet Squats, 5 Start Stop Swings, 3 Push-ups. Then you would repeat this for 5 rounds. However, inkettlebells
the user will add each exercise separately. So the Goblet Squat would be 5 sets of 8. The Start Stop Swing would be 5 sets of 5, and the Push-up would be 5 sets of 3.
-
random
The work out command generates a random workout. The current options are:
ic
(Iron Cardio)abc
(Armor Building Complex)
-
iron-cardio
The
random
command with a workout type ofic
, generates a random iron cardio workout.kettlebells random --workout-type ic
Iron cardio workouts are built from the following parameters:
Parameter Options Single Bell Variations Classic Classic + Pull-up Classic + Snatch Traveling 2s Double Bell Variations Double Classic Double Classic + Pull-up Double Traveling 2s TIMES 30 mins 20 mins 10 mins LOADS heavy medium light SWINGS 0 - 150 -
abc
The random command with a workout type of
abc
will generate a random armor building complex workout.kettlebells random --workout-type abc
Parameter Options Single Bell Variations Armor Building Complex 2.0 Double Bell Variations Armor Building Complex TIMES 30 mins 25 mins 20 mins 15 mins 10 mins LOADS heavy medium light SWINGS 0 - 100
last
The last
command displays the last saved workout and calculates the stats for it.
kettlebells last
view
Use the view
command to search for previous workouts by date. If you have ripgrep installed, use the --preview
flag to view more information about the workout based on the date.
kettlebells view --preview
Use the --Program
flag to filter workouts based on a certain workouttype.
kettlebells view --Program
stats
The stats
command displays the aggregated workout count, time, weight moved, number of reps, and density for all workout in the database.
kettlebells stats
-
plot
To display a line plot of the weight moved per workout, use the
--plot line
option. Add a line at the median with--median
or at the mean with--average
.kettlebells stats --plot line
To display a horizontal bar plot grouped by month, use the
--plot bar
option.kettlebells stats --plot bar
To display an event plot of the current year, use the
--plot event
option.kettlebells stats --plot event
-
calendar
To display a calendar of workouts in a given year, use the
--calendar
flag and pass the year as the argument.kettlebells stats --calendar 2023
-
best
The
best
command displays the top ten workout based on the weight moved.kettlebells stats --best
Use the
--sort
option to sort the table by:- weight-moved (default)
- reps
- weight-density
- rep-density
- time
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kettlebells-0.2.34.tar.gz
.
File metadata
- Download URL: kettlebells-0.2.34.tar.gz
- Upload date:
- Size: 64.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df14a21d496f2e7c669cd9a4a367f019c29087fac0046bd9517d57c984622382 |
|
MD5 | 0cc57011344a15b6a505144feff671f8 |
|
BLAKE2b-256 | a6f00145123dfe648086b9b53139545fabe6fabc09ef0de6b475151e26bd08e6 |
File details
Details for the file kettlebells-0.2.34-py3-none-any.whl
.
File metadata
- Download URL: kettlebells-0.2.34-py3-none-any.whl
- Upload date:
- Size: 33.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1f8f27377bcfca16c406e5717281358d014f3533a010ce7aaecd983a6450c8d |
|
MD5 | 8a80a00551c547ffc08a53456e76cf38 |
|
BLAKE2b-256 | f017053fd4dcef830daf2b6394a72670554b917045070a428471bd5ff05f9d86 |