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.
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.
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
Add favicon.ico, local share image and openapi.json for links and guides
Bind agent address in policy constants
Add OpenApp contribution strip and OpenApps source links
Bounded source sync
Bounded source sync
Bounded source sync