Skip to content

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
amrapAs many reps as possible
5+At least 5 reps, then as many as possible
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

A rep range can't also be AMRAP, and it can't ride the Nx shorthand: 8..12+ and 3x8..12 are both parse errors. Write 8+ or 8..12, and give a range one line per 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.

Percentage ranges, effort targets, and segments

Use @%70..80 for a percentage range and rpe 7..8 for a prescribed effort range. These are targets; log the work and effort you actually complete. Effort options on warmup sets are not recorded as workout effort.

A segmented set is one set with named portions. Use segments followed by quoted names and rep or duration targets separated by commas. For example, 30s segments "Hold" 20s, "Finish" 10s is a 30-second set split into two timed portions.

Optional sessions

Place optional day "Name" { ... } inside a week to add a session separately from its regular training days. The Playground labels these as optional instead of hiding them. Inspect the program in the app before following it.