Exercise packs
An exercise pack adds a list of exercises to the catalogue. It’s pure JSON — no code, no sandbox — so it installs regardless of Restricted Mode.
The fast path: export from the app
You don’t have to write anything. In the app: Exercises → long-press a custom
exercise → select a few → Export as pack. You get a self-contained <name>.logit-pack.json file that anyone can install from Plugins → Add →
File.
To publish it in a registry, split it into a manifest + data file (below), or keep it inline.
The pack file
{
"formatVersion": 1,
"pluginId": "com.you.my-pack",
"exercises": [
{
"name": "Zercher Squat",
"primaryMuscles": ["quads"],
"secondaryMuscles": ["core", "glutes"],
"exerciseType": "normal"
},
{
"name": "Nordic Hamstring Curl",
"primaryMuscles": ["hamstrings"],
"secondaryMuscles": ["calves"],
"exerciseType": "bodyweight"
}
]
} - Muscle groups must be from:
chest,back,shoulders,biceps,triceps,quads,hamstrings,glutes,calves,core,forearms. exerciseType(optional):normal,assisted, orbodyweight.- Max 500 exercises. In-pack duplicate names are dropped.
The manifest
{
"id": "com.you.my-pack",
"family": "exercise-pack",
"name": "My Pack",
"description": "A few odd-lift movements.",
"version": "1.0.0",
"author": "You",
"integrity": "sha256-…",
"distribution": {
"origin": "url",
"manifestUrl": "plugins/my-pack/manifest.json",
"bundleUrl": "plugins/my-pack/exercises.json"
},
"capabilities": [
{ "family": "exercise-pack", "exercisePackId": "com.you.my-pack" }
]
} capabilities[0].exercisePackId must equal the manifest id.
What happens on install
Pack exercises appear in the catalogue with namespaced ids
(pack:<id>:<slug>). A core or user exercise with the same name always wins.
Disabling or uninstalling the pack removes them cleanly. Pack contents are
device-local — they are not synced to your account.
Next: publishing.