
openGym
DuarteSantos8 · Health & fitness
GitHub stars
19,061Awaiting first sync
No measured star history yet
What is openGym?
openGym started as one person's answer to workout apps that wanted a subscription, an account or training data on someone else's server. It is a free tracker for planning routines, logging sets and watching progress, and it runs on your own server or on a phone with no account at all.
openGym is a gym and body-weight tracker you can host yourself or use on your phone alone. It plans routines from a library of over 5,600 exercises, guides each workout with pre-filled weights and rest timers, and shows progress by muscle, lift and body weight. There is no subscription, no ads and no telemetry.
Core capabilities
- Plan routines from over 5,600 exercises, browsable by muscle and filtered by the equipment you own.
- Run guided sessions with weights pre-filled from last time, rest timers and record detection.
- Import history from Strong, Hevy and FitNotes, and export everything as JSON or CSV.
Guided workouts and progression rules
Today's session opens with weights pre-filled from last time, a rest timer between sets and records called out as you go. Supersets, drop sets, timed exercises and cardio are covered, and plate math works from the plates you own at each gym. Progression can follow a rule per routine or per exercise, and a muscle map shows where volume went, what is still recovering and what has gone untrained.
- Guided workouts
- Progression
- Muscle map
Phones, the Apple Watch and your own data
The same codebase builds apps for iPhone, iPad and Android. They work alone with everything on the phone, or connected to your server, where two devices editing at once merge field by field. The Apple Watch app ticks off sets with the Digital Crown and shows heart rate per set, and Apple Health and Health Connect sync in both directions. An AI coach using your own provider key and a local MCP server are optional and off by default.
- iPhone
- Android
- Apple Watch
- Sync
Running it yourself, and what the licence covers
openGym is two small containers, a web server and an API, plus a folder of JSON data, started with Docker Compose. Reaching it from a phone with passkeys needs HTTPS on a domain, and the guides cover Cloudflare Tunnel, Caddy, Traefik, nginx and Kubernetes. The code is AGPL-3.0 with no paid tier. The exercise stills and animations are separate: they are licensed from Gym visual for use in openGym only, so a commercial fork or any other reuse needs its own licence from gymvisual.com.
- Docker
- Passkeys
- AGPL-3.0
Where it fits
Use cases
- 01
Leave a subscription workout app
Import your history from Strong, Hevy or FitNotes, then load a starter plan or rebuild your own routines. Export everything as JSON or CSV whenever you want it.
- 02
Follow a progression rule without a spreadsheet
Choose linear, Greyskull LP, double or triple progression per routine or per exercise. Each target explains why it is that number, missed reps never add load and stalls trigger a deload.
- 03
Host a tracker for family or friends
Start the containers with Docker Compose, put HTTPS on your own domain so passkeys work, and turn on invite-only sign-up. Each person keeps their own profile, synced across their devices.