Getting started
A ReptoLang program is a text file (.repto) made of a few directives at the top followed by one
or more weeks. Here's a complete, minimal program:
1. The version directive
Every program starts with @version 1. This pins the syntax: a @version 1 program will always
parse the same way, even as the language grows. Always include it.
2. Metadata
Optional @ directives describe the program. They don't affect what gets built — they just label
it:
@name "PPL Hypertrophy"
@author "Coach K"
@description "6-day push/pull/legs"
@difficulty intermediate // beginner | intermediate | advanced | elite
@category hypertrophy // powerlifting | bodybuilding | strength | hypertrophy | ...
@unit kg // default weight unit: kg | lb | lbs
3. Training maxes
The tm { } block lists the training maxes that percentage-based sets are calculated from. Refer
to exercises by their library name (see the exercise library):
A set written 5 @%85 then means 5 reps at 85% of that exercise's training max.
4. Weeks, days, and exercises
The body of a program is a list of weeks. Each week contains day blocks, and each day contains
exercise blocks. Names are plain strings, so label them however you like:
Inside an exercise block, each line is a set. There are many ways to write one — fixed reps, rep ranges, AMRAP, time-based, bodyweight, and more. That's the next page: Sets & syntax.
5. Run it
Paste any program into the Playground to compile it instantly. The output shows the resolved weeks, days, exercises, and sets — plus any warnings (e.g. an exercise name it couldn't match). Every snippet in these docs has an Open in Playground button.