Write your program in a browser with a full keyboard, autocomplete and weekly volume stats, then send it to the phone with one link.
Open the editor
Go to liftosaur.com/planner, the Web Editor link in the site menu. You do not need an account to write a program there. The page starts with Week 1 and Day 1 and a help box that shows the syntax.
The editor is built for a big screen. On a laptop the stats sit to the right of the text, and the page can use up to 2400 pixels of width.
Write the program
Each day has an Exercises text box. Type one exercise per line, with sets and reps after a slash:
Bench Press / 5x5 / 90s
Squat / 3x8 @8
Autocomplete suggests exercise names as you type. Errors show inline, in the text. See Liftoscript for the full syntax.
Weeks are tabs. Inside a week you can Add Day, Delete Day, Add Week, Duplicate Week and Delete Week. Add Week Description and Add Day Description add Markdown notes.
Click the document icon in the toolbar to switch to Full Program mode. The whole program becomes one text, with # Week 1 and ## Day 1 headings. This mode has find and replace with regular expressions, and multiple cursors with Cmd+click or Ctrl+click. Click Apply to go back to the per-day view, or Cancel to drop the changes.
Check volume and balance
To the right of the editor is Week Stats. It shows Total Sets, Strength Sets and Hypertrophy Sets, then sets for Upper, Lower, Core, Push, Pull and Legs, then sets per muscle group.
Each line reads like Chest: 8↑ (3s, 5h), 2d: 8 sets in total that week, of which 3 are strength (s, under 8 reps) and 5 hypertrophy (h, 8 reps or more), on 2 days (d). A synergist set counts as a fraction, 0.5 by default, and each number is rounded on its own, so the parts may not add up to the total.
Every muscle group has a weekly set range, 10 to 12 sets unless you change it, and a frequency target, 2 days by default. The total is green inside the range, yellow between 70% of the minimum and 130% of the maximum, red further off. The arrow tells you which way to go: ↑ means add sets, you are below the minimum, ↓ means you are above the maximum, no arrow means inside the range. The day count is green at the target, yellow at half of it, red below. The type lines have no range, so no color and no arrow.
Hover a number to see which exercises count toward it and how much.
A front and back body figure below the numbers shades the muscles you train that week.
The cog icon opens Settings. There you set the Strength sets % and Hypertrophy sets % split, the Synergist multiplier, and the Min, Max and Freq, days targets under Weekly Sets Per Muscle Group. When you are signed in, these settings save to your account and the app uses them too.
In Full Program mode, three toolbar icons open week stats, day stats, and exercise stats for the line under the cursor. The exercise stats graph volume and intensity per week.
Try the program before you run it
Click the eye icon to open Program Preview. It lists every workout the program will produce. Turn on Enable Playground to complete sets by tapping the squares. The preview then runs the progress scripts, so you can see how the weights change after a finished workout.
Send it to your phone
Click the link icon. The editor copies a link to the clipboard and shows a QR code for it. The link holds the full program, so it never changes after you copy it. Editing the program again makes a new link.
In the app, open Choose your program and tap Import from link. The sheet says Paste link from /program web editor. Paste the link and tap Add. The app accepts liftosaur.com/p/... and liftosaur.com/n/... short links, and long links with the program data inside.
If you are signed in on the web, the banner above the editor has a second way. Click Add this program to your account. The program goes straight to your account, and the page opens it in saved mode.
Edit an app program on a laptop
Sign in on the web and open liftosaur.com/user/programs, the My Programs link in the site menu. Click a program name to open it in the editor. New Program in Your Account creates one there. New Standalone Program opens a blank /planner page.
From the phone, open the program, tap the three dots in the top right, then Copy Private Link to Program. Open the copied liftosaur.com/user/p/... link on the laptop. This item needs an account.
A program from your account opens with a Save button. There is no autosave. Save stays off until you change something, and the browser warns you if you leave with unsaved changes. Once saved, the phone gets the new program without a restart.
Every save on the web or in the app stores a snapshot. The Versions link next to the title opens the list, and you can restore any of the last 100.
Train from a laptop
The app itself runs in a browser at liftosaur.com/app, with the same screens as the phone, including Import from link. Sign in with the same account and history and programs sync between the browser and the phone.
The page is a PWA (installable web app). Add it to your home screen or dock, and it opens full screen with the Liftosaur icon.
{"feature":{"id":"web-editor","title":"Editing on Desktop","shortDescription":"Write your program in a browser with a full keyboard, autocomplete and weekly volume stats, then send it to the phone with one link.","order":60,"category":"Programs","datePublished":"2026-09-27","dateModified":"2026-09-29","screenshots":[]},"content":"## Open the editor\n\nGo to [liftosaur.com/planner](/planner), the **Web Editor** link in the site menu. You do not need an account to write a program there. The page starts with **Week 1** and **Day 1** and a help box that shows the syntax.\n\nThe editor is built for a big screen. On a laptop the stats sit to the right of the text, and the page can use up to 2400 pixels of width.\n\n## Write the program\n\nEach day has an **Exercises** text box. Type one exercise per line, with sets and reps after a slash:\n\n```liftoscript\nBench Press / 5x5 / 90s\nSquat / 3x8 @8\n```\n\nAutocomplete suggests exercise names as you type. Errors show inline, in the text. See [Liftoscript](/doc/liftoscript) for the full syntax.\n\nWeeks are tabs. Inside a week you can **Add Day**, **Delete Day**, **Add Week**, **Duplicate Week** and **Delete Week**. **Add Week Description** and **Add Day Description** add Markdown notes.\n\nClick the document icon in the toolbar to switch to **Full Program** mode. The whole program becomes one text, with `# Week 1` and `## Day 1` headings. This mode has find and replace with regular expressions, and multiple cursors with Cmd+click or Ctrl+click. Click **Apply** to go back to the per-day view, or **Cancel** to drop the changes.\n\n## Check volume and balance\n\nTo the right of the editor is **Week Stats**. It shows **Total Sets**, **Strength Sets** and **Hypertrophy Sets**, then sets for **Upper**, **Lower**, **Core**, **Push**, **Pull** and **Legs**, then sets per muscle group.\n\nEach line reads like `Chest: 8↑ (3s, 5h), 2d`: 8 sets in total that week, of which 3 are strength (`s`, under 8 reps) and 5 hypertrophy (`h`, 8 reps or more), on 2 days (`d`). A synergist set counts as a fraction, 0.5 by default, and each number is rounded on its own, so the parts may not add up to the total.\n\nEvery muscle group has a weekly set range, 10 to 12 sets unless you change it, and a frequency target, 2 days by default. The total is green inside the range, yellow between 70% of the minimum and 130% of the maximum, red further off. The arrow tells you which way to go: **↑** means add sets, you are below the minimum, **↓** means you are above the maximum, no arrow means inside the range. The day count is green at the target, yellow at half of it, red below. The type lines have no range, so no color and no arrow.\n\nHover a number to see which exercises count toward it and how much.\n\nA front and back body figure below the numbers shades the muscles you train that week.\n\nThe cog icon opens **Settings**. There you set the **Strength sets %** and **Hypertrophy sets %** split, the **Synergist multiplier**, and the **Min**, **Max** and **Freq, days** targets under **Weekly Sets Per Muscle Group**. When you are signed in, these settings save to your account and the app uses them too.\n\nIn Full Program mode, three toolbar icons open week stats, day stats, and exercise stats for the line under the cursor. The exercise stats graph volume and intensity per week.\n\n## Try the program before you run it\n\nClick the eye icon to open **Program Preview**. It lists every workout the program will produce. Turn on **Enable Playground** to complete sets by tapping the squares. The preview then runs the progress scripts, so you can see how the weights change after a finished workout.\n\n## Send it to your phone\n\nClick the link icon. The editor copies a link to the clipboard and shows a QR code for it. The link holds the full program, so it never changes after you copy it. Editing the program again makes a new link.\n\nIn the app, open **Choose your program** and tap **Import from link**. The sheet says **Paste link from /program web editor**. Paste the link and tap **Add**. The app accepts `liftosaur.com/p/...` and `liftosaur.com/n/...` short links, and long links with the program data inside.\n\nIf you are signed in on the web, the banner above the editor has a second way. Click **Add this program to your account**. The program goes straight to your account, and the page opens it in saved mode.\n\n## Edit an app program on a laptop\n\nSign in on the web and open [liftosaur.com/user/programs](/user/programs), the **My Programs** link in the site menu. Click a program name to open it in the editor. **New Program in Your Account** creates one there. **New Standalone Program** opens a blank `/planner` page.\n\nFrom the phone, open the program, tap the three dots in the top right, then **Copy Private Link to Program**. Open the copied `liftosaur.com/user/p/...` link on the laptop. This item needs an account.\n\nA program from your account opens with a **Save** button. There is no autosave. **Save** stays off until you change something, and the browser warns you if you leave with unsaved changes. Once saved, the phone gets the new program without a restart.\n\nEvery save on the web or in the app stores a snapshot. The **Versions** link next to the title opens the list, and you can restore any of the last 100.\n\n## Train from a laptop\n\nThe app itself runs in a browser at [liftosaur.com/app](/app), with the same screens as the phone, including **Import from link**. Sign in with the same account and history and programs sync between the browser and the phone.\n\nThe page is a PWA (installable web app). Add it to your home screen or dock, and it opens full screen with the Liftosaur icon.","sizes":{"account/account-email-form":{"width":600,"height":1304},"account/account-forgot-password":{"width":600,"height":1304},"account/account-screen":{"width":600,"height":1304},"account/account-sign-in":{"width":600,"height":1304},"chatgpt-claude-and-ai/chatgpt-claude-and-ai-autofill":{"width":600,"height":1304},"api/api-key-created":{"width":600,"height":1304},"api/api-keys-empty":{"width":600,"height":1304},"api/api-me-row":{"width":600,"height":1304},"apple-watch/apple-watch-health-settings":{"width":600,"height":1304},"apple-watch/watch-apple-watch-amrap":{"width":416,"height":496},"apple-watch/watch-apple-watch-crown":{"width":416,"height":496},"apple-watch/watch-apple-watch-exercise":{"width":416,"height":496},"apple-watch/watch-apple-watch-get-ready":{"width":416,"height":496},"apple-watch/watch-apple-watch-home":{"width":416,"height":496},"apple-watch/watch-apple-watch-set-clock":{"width":416,"height":496},"apple-watch/watch-apple-watch-workout":{"width":416,"height":496},"built-in-programs/built-in-programs-import":{"width":600,"height":1304},"built-in-programs/built-in-programs-info":{"width":600,"height":1304},"built-in-programs/built-in-programs-library":{"width":600,"height":1304},"built-in-programs/built-in-programs-preview":{"width":600,"height":1304},"built-in-programs/built-in-programs-started":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-adhoc":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-adhoc-picker":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-create-program-day":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-edit-day":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-edit-exercise":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-next-workout":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-pick-day":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-program-day":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-swap-adhoc":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-swap-from-program":{"width":600,"height":1304},"changing-a-workout/changing-a-workout-swap-recent":{"width":600,"height":1304},"custom-exercises/custom-exercises-autofill":{"width":600,"height":1304},"custom-exercises/custom-exercises-clone-library":{"width":600,"height":1304},"custom-exercises/custom-exercises-cloned":{"width":600,"height":1304},"custom-exercises/custom-exercises-form":{"width":600,"height":1304},"custom-exercises/custom-exercises-hidden-group":{"width":600,"height":1304},"custom-exercises/custom-exercises-image-library":{"width":600,"height":1304},"custom-exercises/custom-exercises-image-source":{"width":600,"height":1304},"custom-exercises/custom-exercises-in-workout":{"width":600,"height":1304},"custom-exercises/custom-exercises-muscle-groups":{"width":600,"height":1304},"custom-exercises/custom-exercises-picker":{"width":600,"height":1304},"custom-exercises/custom-exercises-target-muscles":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-barbell":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-custom":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-exercise":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-fixed":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-gyms":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-hidden":{"width":600,"height":1304},"equipment-and-gyms/equipment-and-gyms-list":{"width":600,"height":1304},"exercise-library/exercise-library-calculator":{"width":600,"height":1304},"exercise-library/exercise-library-from-program":{"width":600,"height":1304},"exercise-library/exercise-library-list":{"width":600,"height":1304},"exercise-library/exercise-library-multi-add":{"width":600,"height":1304},"exercise-library/exercise-library-override-muscles":{"width":600,"height":1304},"exercise-library/exercise-library-picker":{"width":600,"height":1304},"exercise-library/exercise-library-prs":{"width":600,"height":1304},"exercise-library/exercise-library-search":{"width":600,"height":1304},"exercise-library/exercise-library-stats":{"width":600,"height":1304},"exercise-library/exercise-library-swap":{"width":600,"height":1304},"graphs/graphs-bodyweight":{"width":600,"height":1304},"graphs/graphs-choose":{"width":600,"height":1304},"graphs/graphs-exercise":{"width":600,"height":1304},"graphs/graphs-legend":{"width":600,"height":1304},"graphs/graphs-muscle-group":{"width":600,"height":1304},"graphs/graphs-personal-records":{"width":600,"height":1304},"graphs/graphs-settings":{"width":600,"height":1304},"health-sync/android-health-sync-measurements":{"width":600,"height":1339},"health-sync/android-health-sync-settings":{"width":600,"height":1339},"health-sync/android-health-sync-share":{"width":600,"height":1339},"health-sync/android-health-sync-sleep-nutrition":{"width":600,"height":1339},"health-sync/health-sync-measurements":{"width":600,"height":1304},"health-sync/health-sync-settings":{"width":600,"height":1304},"health-sync/health-sync-share":{"width":600,"height":1304},"health-sync/health-sync-sleep-nutrition":{"width":600,"height":1304},"import-export/import-export-export":{"width":600,"height":1304},"import-export/import-export-hevy":{"width":600,"height":1304},"import-export/import-export-import":{"width":600,"height":1304},"liftoscript/liftoscript-exercise-sheet":{"width":600,"height":1304},"liftoscript/liftoscript-full-program":{"width":600,"height":1304},"liftoscript/liftoscript-per-day":{"width":600,"height":1304},"liftoscript/liftoscript-playground":{"width":600,"height":1304},"lock-screen-and-notifications/android-lock-screen-and-notifications-live-update":{"width":600,"height":1339},"lock-screen-and-notifications/android-lock-screen-and-notifications-reminder":{"width":600,"height":1339},"lock-screen-and-notifications/android-lock-screen-and-notifications-sound":{"width":600,"height":1339},"lock-screen-and-notifications/lock-screen-and-notifications-dynamic-island":{"width":600,"height":1304},"lock-screen-and-notifications/lock-screen-and-notifications-live-activity":{"width":600,"height":1304},"lock-screen-and-notifications/lock-screen-and-notifications-reminder":{"width":600,"height":1304},"lock-screen-and-notifications/lock-screen-and-notifications-sound":{"width":600,"height":1304},"measurements/measurements-add":{"width":600,"height":1304},"measurements/measurements-bodyweight":{"width":600,"height":1304},"measurements/measurements-moving-average":{"width":600,"height":1304},"measurements/measurements-sleep-nutrition":{"width":600,"height":1304},"measurements/measurements-types":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-appearance":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-dark-mode":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-equipment":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-me":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-units":{"width":600,"height":1304},"first-run-and-settings/first-run-and-settings-welcome":{"width":600,"height":1304},"playground/playground-completed":{"width":600,"height":1304},"playground/playground-day":{"width":600,"height":1304},"playground/playground-finished":{"width":600,"height":1304},"playground/playground-variables":{"width":600,"height":1304},"premium/premium-account":{"width":600,"height":1304},"premium/premium-feature-info":{"width":600,"height":1304},"premium/premium-plans":{"width":600,"height":1304},"program-editor/program-editor-create":{"width":600,"height":1304},"program-editor/program-editor-day-details":{"width":600,"height":1304},"program-editor/program-editor-exercise-sheet":{"width":600,"height":1304},"program-editor/program-editor-full-text":{"width":600,"height":1304},"program-editor/program-editor-grid":{"width":600,"height":1304},"program-editor/program-editor-perday-text":{"width":600,"height":1304},"program-editor/program-editor-ui-mode":{"width":600,"height":1304},"program-editor/program-editor-week-stats":{"width":600,"height":1304},"progressions/progressions-linear-settings":{"width":600,"height":1304},"progressions/progressions-preview":{"width":600,"height":1304},"progressions/progressions-state-variables":{"width":600,"height":1304},"progressions/progressions-suppressed":{"width":600,"height":1304},"rest-timer/rest-timer-collapsed":{"width":600,"height":1304},"rest-timer/rest-timer-dynamic-island":{"width":600,"height":1304},"rest-timer/rest-timer-expanded":{"width":600,"height":1304},"rest-timer/rest-timer-get-ready":{"width":600,"height":1304},"rest-timer/rest-timer-lock-screen":{"width":600,"height":1304},"rest-timer/rest-timer-settings":{"width":600,"height":1304},"rest-timer/rest-timer-sound":{"width":600,"height":1304},"rest-timer/watch-rest-timer":{"width":416,"height":496},"rest-timer/watch-rest-timer-exercise":{"width":416,"height":496},"set-types/set-types-amrap-popup":{"width":600,"height":1304},"set-types/set-types-per-side":{"width":600,"height":1304},"set-types/set-types-rpe-logged":{"width":600,"height":1304},"set-types/set-types-rpe-popup":{"width":600,"height":1304},"sharing-programs/sharing-programs-export-text":{"width":600,"height":1304},"sharing-programs/sharing-programs-image-preview":{"width":600,"height":1304},"sharing-programs/sharing-programs-image-settings":{"width":600,"height":1304},"sharing-programs/sharing-programs-import":{"width":600,"height":1304},"sharing-programs/sharing-programs-menu":{"width":600,"height":1304},"sharing-programs/sharing-programs-private-link":{"width":600,"height":1304},"sharing-programs/sharing-programs-public-link":{"width":600,"height":1304},"sharing-workouts/sharing-workouts-copied-text":{"width":600,"height":1304},"sharing-workouts/sharing-workouts-finish-screen":{"width":600,"height":1304},"sharing-workouts/sharing-workouts-profile-settings":{"width":600,"height":1304},"sharing-workouts/sharing-workouts-share-sheet":{"width":600,"height":1304},"sharing-workouts/sharing-workouts-story-preview":{"width":600,"height":1304},"supersets/supersets-liftoscript":{"width":600,"height":1304},"supersets/supersets-next-exercise":{"width":600,"height":1304},"supersets/supersets-picker":{"width":600,"height":1304},"supersets/supersets-program-editor":{"width":600,"height":1304},"supersets/supersets-timer":{"width":600,"height":1304},"supersets/supersets-workout":{"width":600,"height":1304},"sync-and-offline/sync-and-offline-account":{"width":600,"height":1304},"sync-and-offline/sync-and-offline-me-account":{"width":600,"height":1304},"sync-and-offline/sync-and-offline-sign-in":{"width":600,"height":1304},"timed-sets/timed-sets-count-up":{"width":600,"height":1304},"timed-sets/timed-sets-edit-time":{"width":600,"height":1304},"timed-sets/timed-sets-get-ready":{"width":600,"height":1304},"timed-sets/timed-sets-recorded":{"width":600,"height":1304},"timed-sets/timed-sets-running":{"width":600,"height":1304},"timed-sets/timed-sets-set-row":{"width":600,"height":1304},"timed-sets/timed-sets-timers":{"width":600,"height":1304},"week-insights/week-insights-details":{"width":600,"height":1304},"week-insights/week-insights-edit-muscle-groups":{"width":600,"height":1304},"week-insights/week-insights-exercises":{"width":600,"height":1304},"week-insights/week-insights-home":{"width":600,"height":1304},"week-insights/week-insights-muscle-groups":{"width":600,"height":1304},"week-insights/week-insights-settings":{"width":600,"height":1304},"workout-history/workout-history-change-date":{"width":600,"height":1304},"workout-history/workout-history-delete":{"width":600,"height":1304},"workout-history/workout-history-feed":{"width":600,"height":1304},"workout-history/workout-history-menu":{"width":600,"height":1304},"workout-history/workout-history-month-calendar":{"width":600,"height":1304},"workout-history/workout-history-note-on-card":{"width":600,"height":1304},"workout-history/workout-history-notes":{"width":600,"height":1304},"workout-history/workout-history-past-card":{"width":600,"height":1304},"workout-history/workout-history-past-workout":{"width":600,"height":1304},"workout-history/workout-history-week-insights":{"width":600,"height":1304},"workout-screen/workout-screen-e1rm":{"width":600,"height":1304},"workout-screen/workout-screen-edit-target":{"width":600,"height":1304},"workout-screen/workout-screen-exercise-menu":{"width":600,"height":1304},"workout-screen/workout-screen-exercise-notes":{"width":600,"height":1304},"workout-screen/workout-screen-history":{"width":600,"height":1304},"workout-screen/workout-screen-keypad":{"width":600,"height":1304},"workout-screen/workout-screen-next-set":{"width":600,"height":1304},"workout-screen/workout-screen-overview":{"width":600,"height":1304},"workout-screen/workout-screen-rounding":{"width":600,"height":1304},"workout-screen/workout-screen-summary":{"width":600,"height":1304}}}