Skip to content

The workout format

Simply Train workouts are lift.md files. Anything valid in the LiftMark Workout Format is valid here, and this page documents the small set of additions Simply Train makes in order to run a workout rather than merely record one.


A complete file

One workout per file. The first heading with exercise headings under it names the workout; headings one level below it are exercises; headings at that level with no sets of their own are sections. Each list item is exactly one set.

Upper Body A.md
# Upper Body A@tags: strength, push@units: kg@rest: 60s@exercise-rest: 90s Quick session focused on push strength. Keep core tight throughout. ## Warmup ### Arm Circles- 20- 20 ### Jumping Jacks- 60s ## Main ### Push-Ups- x 12- x 12- x 12 @rest: 90s ### Sit-Ups@rest: 45s- x 20- x 20- x 20 ### Goblet Squat@rest: open- 12 kg x 10- 12 kg x 10- 12 kg x 10

Read that file in any markdown viewer and it still looks like a sensible plan. That is the point of the format: it is a document first.


Set lines

One line is one set, and one set is one step in the player. The kinds are mutually exclusive — a line is reps, or time, or distance, not two of them.

WrittenMeansIn the player
- x 12twelve reps, bodyweightshows the target, waits for Next
- 12the same, written shortershows the target, waits for Next
- 100 kg x 5five reps at a hundred kilosshows target and weight
- 225 lbs x 5pounds insteadshows target and weight
- x 8-12a rep rangeshows “8–12 reps”
- x AMRAPas many as possibleshows “MAX”
- 60sa sixty-second setcounts down and advances itself
- 2mtwo minutes — m is always minutescounts down
- 1m30sninety seconds, compoundcounts down
- 45 lbs x 60sa loaded holdcounts down, weight shown
- 200 metersa distanceshows the target, waits for Next
- 60s per legper-sideruns left, then right

Weight is external resistance only: a pull-up with a 25 lb belt is 25 lbs x 8. Units are optional per set and default to the workout’s @units:. Anything trailing on the line that isn’t a modifier becomes that set’s note and is shown while you do it.


Modifiers

Appended to a set line, or placed on their own line directly beneath a heading to apply to everything under it.

KeyWhereMeaning
@rest: 90sset, exercise, workoutrest after the set
@rest: openset, exercise, workoutuser-paced rest — the clock counts up and waits
@exercise-rest: 2mexercise, workoutrest between one exercise and the next
@countdown: 5sworkoutget-ready lead-in before each timed set
@units: kgworkoutdefault weight unit — kg or lbs
@tags: strength, pushworkoutfree-text tags
@persidesetrun the set left, then right
@dropsetsetmarked on the work step

Extensions to lift.md


Of the above, @rest at exercise and workout level, @rest: open, @exercise-rest, @countdown, compound durations such as 1m30s, and rep ranges such as x 8-12 are Simply Train’s additions. Everything else is the core format. A tool that only knows core lift.md reads the additions as unknown metadata and carries on, which is exactly what unknown keys are for.


How rest is decided

For the rest that follows a given set, the most specific rule wins:

  1. 1@rest: on the set line itself
  2. 2@rest: on the exercise
  3. 3@rest: on the workout header
  4. 4the default in Settings — 60s

Between the last set of one exercise and the first of the next, the rest is @exercise-rest: instead, falling back to its own Settings default of 90 seconds — unless that last set carries an explicit @rest:, which wins. No rest is ever added after the final set of a workout: a session ends on work. @rest: 0s is legal and means carry straight on.


What counts as an error

The format is strict about meaning and liberal about formatting. Prose, bold text and links under a heading are ignored, not flagged. Something suspicious but runnable — a rest of four seconds, a set of two hundred reps, a deprecated key — is a warning and never blocks you.

An error is a line that was clearly meant as a set and cannot be compiled: a weight with no reps, a distance combined with a weight, a rep range that counts backwards, two @rest keys on one line. Those block Start, because silently skipping a line you meant as a set is the one failure you would only discover mid-workout.


Supersets

A section heading whose text contains “superset” groups the exercises beneath it. Simply Train parses these per the specification and keeps the grouping, but this version runs them in order rather than interleaved, and says so with a warning when the session starts. Interleaved execution is the next planned change and affects only how the file is compiled, not how it is written.


Attribution

Attribution. The LiftMark Workout Format specification is published by its authors under CC BY-SA 4.0. The normative reference is getlift.md/format/spec. Where this page and that specification disagree on core syntax, the specification is correct.

This page derives from that specification and is itself licensed CC BY-SA 4.0.