openGym
Self-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.
- 15.1k estrellas
- 2k forks
- 251 issues abiertos
- Lenguaje: JavaScript
- Licencia: AGPL-3.0
- actualizado
Instalación
git clone https://github.com/DuarteSantos8/openGym{
"mcpServers": {
"opengym": {
"command": "node",
"args": ["/path/to/openGym/dist/index.js"]
}
}
}{
"mcpServers": {
"opengym": {
"command": "node",
"args": ["/path/to/openGym/dist/index.js"]
}
}
}- Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
- Replace any <placeholder> values with your API keys or paths.
- Restart Claude. The MCP server and its tools appear automatically.
Clone https://github.com/DuarteSantos8/openGym and follow its README for install instructions.
Resumen de MCP Servers
A self-hosted gym and body-weight tracker you actually own.
Plan your week, run guided workouts, log every set and your body weight, on your phone, synced across your devices, behind your own passkey login.
Website · Live demo · Android APK · iPhone beta (TestFlight) · Self-hosting guide · Roadmap · Changelog
Home · today's workout and weight Guided workout · demos and sets Stats · heatmap, charts and PRs
Why openGym
Most workout apps keep your data on their servers, push you towards a subscription, or vanish when the company does. openGym runs on your own box, keeps your data in a folder you control, and is yours to fork. It still behaves like a modern app: installable on the home screen, passkey sign-in, works offline, syncs between your phone and your laptop.
No account on someone else's server, no subscription, no ads, no telemetry. One
docker compose up and it's running.
The in-browser demo is the real app with example data, if you want to try it before installing anything.
Features
Planning
A routine per weekday over a library of over 5,600 exercises with animated demos, searchable and browsable by muscle on a body map. Filter by the equipment you own.
Four starter plans (Push/Pull/Legs, Upper/Lower, Full Body, 5×5) that load as ordinary, editable routines.
Move a session to another day without touching the weekly plan. The week starts on Monday or Sunday, your choice.
Or skip the weekdays altogether: a rotation (A, B, C, A, ...) where the next session is simply the next one you haven't done, however the week went.
Supersets, warm-up sets, drop sets and rest-pause, timed exercises (planks, hangs, carries), cardio by time and speed, rest time per exercise, planned deloads.
Your own exercises, with your own photo, GIF or short video. Location data is stripped on the device before upload.
Training
Guided sessions: today's workout starts itself, weights are pre-filled from last time, a rest timer runs between sets, PRs are detected as you go. On a rest day it tells you when the next session is.
A quiet workout screen: one menu per exercise, the set number as the set's own menu, card or list view. Switches in Settings bring the old button rows back if you liked them.
Optional effort column as RIR or RPE, colour-coded, with a plain-language line per level.
Plate math for barbell, EZ bar, trap bar and Smith machine, worked out from the plates you own.
Bodyweight exercises know they carry no load: log reps, add a dip belt if you use one.
Per-side reps for lunges and single-arm work, the screen stays awake while you train, and a rest-timer alert can flash the screen for loud gyms.
Swipe a set left to delete it (with Undo) or right to copy it. Pyramid sets with their own reps and rest per set, and a scroll wheel for any rest time up to 15 minutes.
Progress
Progression rules per routine or per exercise: linear, Greyskull LP, double progression through a visible rep range, triple progression (reps, then sets, then load), or adding time. Each target explains why it is that number; missed reps never add load, stalls trigger a deload.
Estimated 1RM per exercise with its own curve, Structural Balance ratios (Poliquin, Thibaudeau, ATG), a year-long activity heatmap.
A muscle map in three modes: where your volume went, what is still recovering, and what has gone untrained.
Body-weight chart against a goal line, and progress photos on a timeline with a before/after slider.
Edit any saved workout after the fact, log one you did on paper, or move it to the right date. Records are re-read from the corrected history.
Accounts and data
Passkeys (Face ID, Touch ID, fingerprint) with per-profile data synced across devices. Password sign-in can be switched on per instance; new devices pair with a one-time code or QR.
Two devices editing at once merge field by field instead of overwriting each other (see sync).
Import from FitNotes, Strong, Hevy (CSV or API key) and Apple Health weight exports. Export everything as one JSON file whenever you like.
Share a plan as a small file or print it as a PDF.
Optional admin dashboard with invite-only signup and an activity log.
19 languages, including right-to-left Arabic and Traditional Chinese. Exercise names and instructions are translated for most of them.
Optional extras, off by default
An AI coach that drafts a week of routines and later suggests changes based on what you logged. You approve every change. It runs on your server with your own provider key (Anthropic, OpenAI, Gemini or any OpenAI-compatible endpoint, Ollama included).
An MCP server so an assistant like Claude Desktop can answer questions about your training history. Read-only and local; not part of the Docker build.
The full list of what changed release by release is in the changelog.
Quick start
You need Docker with Compose.
git clone https://github.com/DuarteSantos8/openGym
cd openGym
cp .env.example .env
docker compose pull # prebuilt images, amd64 + arm64 (skip this to build from source)
docker compose up -dOpen http://localhost:8080, tap Create profile, and you're in. The exercise animations are part of the image, so there's nothing else to download.
To reach it from your phone with passkeys you need HTTPS on a domain; that's a two-line change in
.env. The self-hosting guide walks through Cloudflare Tunnel, Caddy,
Traefik and nginx, and there are separate guides for
HTTPS on a LAN and Kubernetes.
Note
Images are published from the same tag to
ghcr.io/duartesantos8/opengym-{api,web}(whatdocker-compose.ymlpulls) andregistry.gitlab.com/duartesantos8/opengym/{api,web}. Swap theimage:lines if you prefer GitLab's registry, or rundocker compose up -d --buildto build locally. Either way you don't need Node on the host.
Configuration reference (all through .env)
| Variable | What it does | Default |
|---|---|---|
RP_ID | Hostname passkeys are bound to | localhost |
ORIGIN | Full URL the app is served from | http://localhost:8080 |
WEB_PORT | Host port for the web UI | 8080 |
Lo que la gente pregunta sobre openGym
¿Qué es DuarteSantos8/openGym?
DuarteSantos8/openGym es mcp servers para el ecosistema de Claude AI. Self-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server. Tiene 15.1k estrellas en GitHub y su última actualización registrada es del 2026-10-23.
¿Cómo se instala openGym?
Puedes instalar openGym clonando el repositorio (https://github.com/DuarteSantos8/openGym) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar DuarteSantos8/openGym?
Nuestro agente de seguridad ha analizado DuarteSantos8/openGym y le ha asignado un Trust Score de 100/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene DuarteSantos8/openGym?
DuarteSantos8/openGym es mantenido por DuarteSantos8. La última actividad registrada en GitHub es del 2026-10-23, con 251 issues abiertos.
¿Hay alternativas a openGym?
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.