The 5RM Fighter Pull-up Program
- Day 1 - 5, 4, 3, 2, 1
- Day 2 - 5, 4, 3, 2, 2
- Day 3 - 5, 4, 3, 3, 2
- Day 4 - 5, 4, 4, 3, 2
- Day 5 - 5, 5, 4, 3, 2
- et cetera
You start with an all-out set and then cut a rep in each consecutive set for a total of five sets. The next Day add a rep to the last set. Then a rep to the set before that, etc.
The system is intended to be used for four weeks. At the end of the month, take two or three days off and then test yourself. It is not unusual to up the reps 2.5-3 times. In other words, you are likely to end up cranking out 12-15 reps if you started with 5. If you can already do between 6 and 12 reps, then start the program with the first Day your PR shows up. For instance, if your max is 6 pull-ups start with Day 7; if your max is 8 start with Day 19.
If you run into a snag with this routine, back off a week and build up again. If you hit the wall again, switch to another routine.
I don’t like typing out lists, or hunting for where I keep notes, or having to bookmark a website just for what that day’s sets of reps is supposed to be. So, I wrote a bash script to generate a data list, with dates. That list is used by another script, run by cron, to check today’s date against the date from the list and then it pushes that day’s sets to a telegram bot I set up.
Here’s the scripts:
The progression is five days of sets and then a day of rest, then the cycle repeats, for thirty days. When I first set this up to push notifications to telegram, I typed the whole thing out, after I’d typed the whole thing out for this post. I hate typing the same thing over and over again. So, I wrote this script.
What this script does is figure out the math to automagically print out the sets and rest days. It prepends the days with the date these sets should occur. If you run the script with no arguments, it assumes you’re starting the program today, and starts with today’s date:
- 20181023: 5, 4, 3, 2, 1
- 20181024: 5, 4, 3, 2, 2
- 20181025: 5, 4, 3, 3, 2
- 20181026: 5, 4, 4, 3, 2
- 20181027: 5, 5, 4, 3, 2
- 20181029: Rest
- et cetera
However, you can feed the script a date in the future, and it’ll work out the math so you’ll get reminded at the appropriate time. You just have to feed the script the date you want to start in
- 20190101: 5, 4, 3, 2, 1
- 20190102: 5, 4, 3, 2, 2
- 20190103: 5, 4, 3, 3, 2
- 20190104: 5, 4, 4, 3, 2
- 20190105: 5, 5, 4, 3, 2
- 20190107: Rest
- et cetera
From here, you can just redirect the output into whatever file you want, I created
$HOME/bin/, but you can name it whatever you want, and put it wherever you want, as long as you update the
If you don’t understand the
pullups.sh script, I took it from 8018523309. I’ve used it as a template for several notification bots. They’re pretty handy.
Essentially, you create a bot, get a token, start a chat with the bot, open /api.telegram.org/bot$TOKEN/getUpdates (where
$TOKEN is the token given from the BotFather when you created your channel), search through the JSON for the
chat: id: and then you have everything for the script. The token from the BotFather, and the chat id from the JSON file. The script will push updates to you through that bot when it executes.
Just make sure you update the path for the
DATA variable in the script to point to wherever you redirected the output from
(via Strong First)