Sets & syntax

Inside an exercise block, every line describes one set. The basic shape is:

[flag] <reps> @<weight> [flags]

Rep forms

You writeMeaning
55 reps
5+ or amrapAs many reps as possible (at least the target)
8-12Rep range — log anywhere from 8 to 12
3x8Shorthand for 3 sets of 8
30sA 30-second (time-based) set
1m30sA 90-second set

Weight forms

Weights come after an @:

You writeMeaning
@%8585% of this exercise's training max
@%85 of Squat85% of another exercise's training max
@135lbs / @60kgA fixed load
@BWBodyweight (pull-ups, dips, push-ups)
@BW+20kg / @BW+45lbsBodyweight plus added load

Flags

Flags annotate a set. warmup goes before the reps; drop and failure go after the weight:

FlagEffect
warmupWarm-up set — excluded from working volume
dropDrop set
failureTaken to failure

Exercise options

An exercise block can also carry options before its sets:

Bench Press {
  rest: 3m              // rest between sets
  intensity: rpe        // log RPE on each set (rpe | rir)
  notes: "Pause on chest"
  5 @%80
}

Supersets

Group exercises into a superset — they share a single rest timer:

Comments

Use // for line comments. They're preserved with your program, so annotate freely:

Squat (Back Squat) {
  5 @%85   // top set — push it
  // back-off sets below
  3x5 @%75
}

Next up: making programs adapt over time with progressions & hooks.