lift-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev f9f4e37d6945
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 23e397d8a5d5bf7756362640
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
src/lib/library.ts
// The built-in exercise library: common gym exercises with their main muscle group, equipment and
// how a set is logged. Ids are stable: routine links, history and llms.txt use them.
export type Muscle = "chest" | "back" | "shoulders" | "biceps" | "triceps" | "forearms" | "core" | "quads" | "hamstrings" | "glutes" | "calves" | "full-body" | "cardio" | "other";
export type Equipment = "barbell" | "dumbbell" | "machine" | "cable" | "kettlebell" | "bodyweight" | "band" | "other";
/** How a set is logged: w weight and reps, b reps with optional added weight, t time (optional weight), c distance and time. */
export type Kind = "w" | "b" | "t" | "c";

export interface Exercise { id: string; name: string; muscle: Muscle; equipment: Equipment; kind: Kind; custom?: boolean }

export const MUSCLES: { id: Muscle; name: string }[] = [
  { id: "chest", name: "Chest" }, { id: "back", name: "Back" }, { id: "shoulders", name: "Shoulders" },
  { id: "biceps", name: "Biceps" }, { id: "triceps", name: "Triceps" }, { id: "forearms", name: "Forearms" },
  { id: "core", name: "Core" }, { id: "quads", name: "Quads" }, { id: "hamstrings", name: "Hamstrings" },
  { id: "glutes", name: "Glutes" }, { id: "calves", name: "Calves" }, { id: "full-body", name: "Full body" },
  { id: "cardio", name: "Cardio" }, { id: "other", name: "Other" },
];

export const EQUIPMENT: { id: Equipment; name: string }[] = [
  { id: "barbell", name: "Barbell" }, { id: "dumbbell", name: "Dumbbell" }, { id: "machine", name: "Machine" },
  { id: "cable", name: "Cable" }, { id: "kettlebell", name: "Kettlebell" }, { id: "bodyweight", name: "Bodyweight" },
  { id: "band", name: "Band" }, { id: "other", name: "Other" },
];

export const KINDS: { id: Kind; name: string }[] = [
  { id: "w", name: "Weight and reps" },
  { id: "b", name: "Reps, with optional added weight" },
  { id: "t", name: "Time, with optional weight" },
  { id: "c", name: "Distance and time" },
];

const L: [string, string, Muscle, Equipment, Kind][] = [
  // Chest
  ["bench-press", "Bench press (barbell)", "chest", "barbell", "w"],
  ["incline-bench-press", "Incline bench press (barbell)", "chest", "barbell", "w"],
  ["decline-bench-press", "Decline bench press (barbell)", "chest", "barbell", "w"],
  ["dumbbell-bench-press", "Bench press (dumbbell)", "chest", "dumbbell", "w"],
  ["incline-dumbbell-press", "Incline bench press (dumbbell)", "chest", "dumbbell", "w"],
  ["decline-dumbbell-press", "Decline bench press (dumbbell)", "chest", "dumbbell", "w"],
  ["dumbbell-fly", "Chest fly (dumbbell)", "chest", "dumbbell", "w"],
  ["incline-dumbbell-fly", "Incline chest fly (dumbbell)", "chest", "dumbbell", "w"],
  ["dumbbell-pullover", "Pullover (dumbbell)", "chest", "dumbbell", "w"],
  ["cable-crossover", "Cable crossover", "chest", "cable", "w"],
  ["low-cable-fly", "Low to high cable fly", "chest", "cable", "w"],
  ["pec-deck", "Chest fly (machine)", "chest", "machine", "w"],
  ["chest-press-machine", "Chest press (machine)", "chest", "machine", "w"],
  ["incline-chest-press-machine", "Incline chest press (machine)", "chest", "machine", "w"],
  ["smith-bench-press", "Bench press (Smith machine)", "chest", "machine", "w"],
  ["push-up", "Push-up", "chest", "bodyweight", "b"],
  ["incline-push-up", "Incline push-up", "chest", "bodyweight", "b"],
  ["decline-push-up", "Decline push-up", "chest", "bodyweight", "b"],
  ["chest-dip", "Dip (chest)", "chest", "bodyweight", "b"],
  ["band-chest-press", "Chest press (band)", "chest", "band", "b"],
  // Back
  ["deadlift", "Deadlift (barbell)", "back", "barbell", "w"],
  ["sumo-deadlift", "Sumo deadlift (barbell)", "back", "barbell", "w"],
  ["trap-bar-deadlift", "Deadlift (trap bar)", "back", "other", "w"],
  ["rack-pull", "Rack pull (barbell)", "back", "barbell", "w"],
  ["barbell-row", "Bent-over row (barbell)", "back", "barbell", "w"],
  ["pendlay-row", "Pendlay row (barbell)", "back", "barbell", "w"],
  ["t-bar-row", "T-bar row", "back", "barbell", "w"],
  ["dumbbell-row", "One-arm row (dumbbell)", "back", "dumbbell", "w"],
  ["chest-supported-row", "Chest-supported row (dumbbell)", "back", "dumbbell", "w"],
  ["seated-cable-row", "Seated row (cable)", "back", "cable", "w"],
  ["machine-row", "Row (machine)", "back", "machine", "w"],
  ["lat-pulldown", "Lat pulldown (cable)", "back", "cable", "w"],
  ["close-grip-pulldown", "Close-grip lat pulldown (cable)", "back", "cable", "w"],
  ["straight-arm-pulldown", "Straight-arm pulldown (cable)", "back", "cable", "w"],
  ["pull-up", "Pull-up", "back", "bodyweight", "b"],
  ["chin-up", "Chin-up", "back", "bodyweight", "b"],
  ["inverted-row", "Inverted row", "back", "bodyweight", "b"],
  ["band-row", "Row (band)", "back", "band", "b"],
  ["barbell-shrug", "Shrug (barbell)", "back", "barbell", "w"],
  ["dumbbell-shrug", "Shrug (dumbbell)", "back", "dumbbell", "w"],
  ["back-extension", "Back extension", "back", "bodyweight", "b"],
  ["superman", "Superman hold", "back", "bodyweight", "t"],
  // Shoulders
  ["overhead-press", "Overhead press (barbell)", "shoulders", "barbell", "w"],
  ["push-press", "Push press (barbell)", "shoulders", "barbell", "w"],
  ["dumbbell-shoulder-press", "Shoulder press (dumbbell)", "shoulders", "dumbbell", "w"],
  ["arnold-press", "Arnold press (dumbbell)", "shoulders", "dumbbell", "w"],
  ["machine-shoulder-press", "Shoulder press (machine)", "shoulders", "machine", "w"],
  ["kettlebell-press", "Overhead press (kettlebell)", "shoulders", "kettlebell", "w"],
  ["landmine-press", "Landmine press", "shoulders", "barbell", "w"],
  ["lateral-raise", "Lateral raise (dumbbell)", "shoulders", "dumbbell", "w"],
  ["cable-lateral-raise", "Lateral raise (cable)", "shoulders", "cable", "w"],
  ["machine-lateral-raise", "Lateral raise (machine)", "shoulders", "machine", "w"],
  ["front-raise", "Front raise (dumbbell)", "shoulders", "dumbbell", "w"],
  ["rear-delt-fly", "Rear delt fly (dumbbell)", "shoulders", "dumbbell", "w"],
  ["reverse-pec-deck", "Rear delt fly (machine)", "shoulders", "machine", "w"],
  ["face-pull", "Face pull (cable)", "shoulders", "cable", "w"],
  ["upright-row", "Upright row (barbell)", "shoulders", "barbell", "w"],
  ["band-pull-apart", "Band pull-apart", "shoulders", "band", "b"],
  ["pike-push-up", "Pike push-up", "shoulders", "bodyweight", "b"],
  ["handstand-push-up", "Handstand push-up", "shoulders", "bodyweight", "b"],
  // Biceps
  ["barbell-curl", "Curl (barbell)", "biceps", "barbell", "w"],
  ["ez-bar-curl", "Curl (EZ bar)", "biceps", "barbell", "w"],
  ["dumbbell-curl", "Curl (dumbbell)", "biceps", "dumbbell", "w"],
  ["hammer-curl", "Hammer curl (dumbbell)", "biceps", "dumbbell", "w"],
  ["incline-dumbbell-curl", "Incline curl (dumbbell)", "biceps", "dumbbell", "w"],
  ["concentration-curl", "Concentration curl (dumbbell)", "biceps", "dumbbell", "w"],
  ["preacher-curl", "Preacher curl (EZ bar)", "biceps", "barbell", "w"],
  ["machine-preacher-curl", "Preacher curl (machine)", "biceps", "machine", "w"],
  ["cable-curl", "Curl (cable)", "biceps", "cable", "w"],
  ["band-curl", "Curl (band)", "biceps", "band", "b"],
  // Triceps
  ["close-grip-bench-press", "Close-grip bench press (barbell)", "triceps", "barbell", "w"],
  ["skull-crusher", "Skull crusher (EZ bar)", "triceps", "barbell", "w"],
  ["triceps-pushdown", "Triceps pushdown (cable)", "triceps", "cable", "w"],
  ["rope-pushdown", "Rope pushdown (cable)", "triceps", "cable", "w"],
  ["overhead-cable-extension", "Overhead triceps extension (cable)", "triceps", "cable", "w"],
  ["overhead-dumbbell-extension", "Overhead triceps extension (dumbbell)", "triceps", "dumbbell", "w"],
  ["dumbbell-kickback", "Triceps kickback (dumbbell)", "triceps", "dumbbell", "w"],
  ["machine-dip", "Dip (machine)", "triceps", "machine", "w"],
  ["dip", "Dip (triceps)", "triceps", "bodyweight", "b"],
  ["bench-dip", "Bench dip", "triceps", "bodyweight", "b"],
  ["diamond-push-up", "Diamond push-up", "triceps", "bodyweight", "b"],
  // Forearms
  ["wrist-curl", "Wrist curl (dumbbell)", "forearms", "dumbbell", "w"],
  ["reverse-wrist-curl", "Reverse wrist curl (dumbbell)", "forearms", "dumbbell", "w"],
  ["reverse-curl", "Reverse curl (barbell)", "forearms", "barbell", "w"],
  ["farmers-carry", "Farmer's carry (dumbbell)", "forearms", "dumbbell", "t"],
  ["dead-hang", "Dead hang", "forearms", "bodyweight", "t"],
  // Core
  ["plank", "Plank", "core", "bodyweight", "t"],
  ["side-plank", "Side plank", "core", "bodyweight", "t"],
  ["hollow-hold", "Hollow hold", "core", "bodyweight", "t"],
  ["crunch", "Crunch", "core", "bodyweight", "b"],
  ["sit-up", "Sit-up", "core", "bodyweight", "b"],
  ["bicycle-crunch", "Bicycle crunch", "core", "bodyweight", "b"],
  ["dead-bug", "Dead bug", "core", "bodyweight", "b"],
  ["mountain-climber", "Mountain climber", "core", "bodyweight", "b"],
  ["russian-twist", "Russian twist", "core", "bodyweight", "b"],
  ["lying-leg-raise", "Lying leg raise", "core", "bodyweight", "b"],
  ["hanging-knee-raise", "Hanging knee raise", "core", "bodyweight", "b"],
  ["hanging-leg-raise", "Hanging leg raise", "core", "bodyweight", "b"],
  ["ab-wheel-rollout", "Ab wheel rollout", "core", "other", "b"],
  ["cable-crunch", "Cable crunch", "core", "cable", "w"],
  ["cable-woodchop", "Woodchop (cable)", "core", "cable", "w"],
  ["pallof-press", "Pallof press (cable)", "core", "cable", "w"],
  // Quads
  ["squat", "Back squat (barbell)", "quads", "barbell", "w"],
  ["front-squat", "Front squat (barbell)", "quads", "barbell", "w"],
  ["smith-squat", "Squat (Smith machine)", "quads", "machine", "w"],
  ["goblet-squat", "Goblet squat (dumbbell)", "quads", "dumbbell", "w"],
  ["kettlebell-goblet-squat", "Goblet squat (kettlebell)", "quads", "kettlebell", "w"],
  ["hack-squat", "Hack squat (machine)", "quads", "machine", "w"],
  ["leg-press", "Leg press (machine)", "quads", "machine", "w"],
  ["leg-extension", "Leg extension (machine)", "quads", "machine", "w"],
  ["bulgarian-split-squat", "Bulgarian split squat (dumbbell)", "quads", "dumbbell", "w"],
  ["walking-lunge", "Walking lunge (dumbbell)", "quads", "dumbbell", "w"],
  ["reverse-lunge", "Reverse lunge (dumbbell)", "quads", "dumbbell", "w"],
  ["barbell-lunge", "Lunge (barbell)", "quads", "barbell", "w"],
  ["step-up", "Step-up (dumbbell)", "quads", "dumbbell", "w"],
  ["air-squat", "Bodyweight squat", "quads", "bodyweight", "b"],
  ["bodyweight-lunge", "Bodyweight lunge", "quads", "bodyweight", "b"],
  ["jump-squat", "Jump squat", "quads", "bodyweight", "b"],
  ["pistol-squat", "Pistol squat", "quads", "bodyweight", "b"],
  ["wall-sit", "Wall sit", "quads", "bodyweight", "t"],
  // Hamstrings
  ["romanian-deadlift", "Romanian deadlift (barbell)", "hamstrings", "barbell", "w"],
  ["dumbbell-romanian-deadlift", "Romanian deadlift (dumbbell)", "hamstrings", "dumbbell", "w"],
  ["single-leg-romanian-deadlift", "Single-leg Romanian deadlift (dumbbell)", "hamstrings", "dumbbell", "w"],
  ["stiff-leg-deadlift", "Stiff-leg deadlift (barbell)", "hamstrings", "barbell", "w"],
  ["good-morning", "Good morning (barbell)", "hamstrings", "barbell", "w"],
  ["lying-leg-curl", "Lying leg curl (machine)", "hamstrings", "machine", "w"],
  ["seated-leg-curl", "Seated leg curl (machine)", "hamstrings", "machine", "w"],
  ["nordic-curl", "Nordic curl", "hamstrings", "bodyweight", "b"],
  // Glutes
  ["hip-thrust", "Hip thrust (barbell)", "glutes", "barbell", "w"],
  ["machine-hip-thrust", "Hip thrust (machine)", "glutes", "machine", "w"],
  ["glute-bridge", "Glute bridge", "glutes", "bodyweight", "b"],
  ["single-leg-glute-bridge", "Single-leg glute bridge", "glutes", "bodyweight", "b"],
  ["cable-kickback", "Glute kickback (cable)", "glutes", "cable", "w"],
  ["cable-pull-through", "Pull-through (cable)", "glutes", "cable", "w"],
  ["hip-abduction", "Hip abduction (machine)", "glutes", "machine", "w"],
  ["hip-adduction", "Hip adduction (machine)", "glutes", "machine", "w"],
  ["kettlebell-swing", "Kettlebell swing", "glutes", "kettlebell", "w"],
  // Calves
  ["standing-calf-raise", "Standing calf raise (machine)", "calves", "machine", "w"],
  ["seated-calf-raise", "Seated calf raise (machine)", "calves", "machine", "w"],
  ["leg-press-calf-raise", "Calf press (leg press)", "calves", "machine", "w"],
  ["dumbbell-calf-raise", "Calf raise (dumbbell)", "calves", "dumbbell", "w"],
  ["bodyweight-calf-raise", "Calf raise (bodyweight)", "calves", "bodyweight", "b"],
  // Full body
  ["power-clean", "Power clean (barbell)", "full-body", "barbell", "w"],
  ["hang-clean", "Hang clean (barbell)", "full-body", "barbell", "w"],
  ["clean-and-jerk", "Clean and jerk (barbell)", "full-body", "barbell", "w"],
  ["snatch", "Snatch (barbell)", "full-body", "barbell", "w"],
  ["thruster", "Thruster (barbell)", "full-body", "barbell", "w"],
  ["dumbbell-thruster", "Thruster (dumbbell)", "full-body", "dumbbell", "w"],
  ["turkish-get-up", "Turkish get-up (kettlebell)", "full-body", "kettlebell", "w"],
  ["wall-ball", "Wall ball", "full-body", "other", "w"],
  ["burpee", "Burpee", "full-body", "bodyweight", "b"],
  ["box-jump", "Box jump", "full-body", "bodyweight", "b"],
  ["battle-ropes", "Battle ropes", "full-body", "other", "t"],
  // Cardio
  ["running", "Running", "cardio", "other", "c"],
  ["treadmill", "Running (treadmill)", "cardio", "machine", "c"],
  ["walking", "Walking", "cardio", "other", "c"],
  ["incline-walk", "Incline walk (treadmill)", "cardio", "machine", "c"],
  ["cycling", "Cycling", "cardio", "other", "c"],
  ["stationary-bike", "Stationary bike", "cardio", "machine", "c"],
  ["air-bike", "Air bike", "cardio", "machine", "c"],
  ["rowing-machine", "Rowing machine", "cardio", "machine", "c"],
  ["ski-erg", "Ski erg", "cardio", "machine", "c"],
  ["elliptical", "Elliptical", "cardio", "machine", "c"],
  ["stair-climber", "Stair climber", "cardio", "machine", "c"],
  ["swimming", "Swimming", "cardio", "other", "c"],
  ["jump-rope", "Jump rope", "cardio", "other", "t"],
];

export const LIBRARY: Exercise[] = L.map(([id, name, muscle, equipment, kind]) => ({ id, name, muscle, equipment, kind }));
export const LIBRARY_BY_ID = new Map(LIBRARY.map((e) => [e.id, e]));

export const muscleName = (m: Muscle) => MUSCLES.find((x) => x.id === m)?.name ?? m;
export const equipmentName = (e: Equipment) => EQUIPMENT.find((x) => x.id === e)?.name ?? e;

Change history

Point OpenApps store links to openapps.free
f9f4e37d69 · 17 hours ago
Add favicon.ico, local share image and openapi.json for links and guides
2796c0063c · 18 hours ago
Bind agent address in policy constants
cf80a3ca66 · 19 hours ago
Add OpenApp contribution strip and OpenApps source links
5e4cc2b9f3 · 19 hours ago
Bounded source sync
ca4a3d3631 · 1 day ago
Bounded source sync
7351063f4d · 1 day ago
Bounded source sync
0ce3238c46 · 1 day ago