Fast workout logging for Obsidian Mobile. Log sets with minimal taps, store everything in plain markdown.
Gym Buddy is an Obsidian plugin designed for logging weight training workouts on mobile devices. It prioritizes speed and simplicity for use during short rest periods, while keeping all data in human-readable markdown files compatible with Dataview and version control.
Steppers for weight/reps instead of keyboard input
Pre-fills previous workout values as defaults
Large touch targets for one-handed operation
Interface designed for 30-90 second rest windows
Works with gloves or sweaty hands
Minimal navigation required
Workouts saved as standard markdown with YAML frontmatter
Full Dataview compatibility
Integrates with daily/weekly note workflows
800+ exercises from free-exercise-db
Filterable by muscle group
Recent/favorites tracking
Built-in templates: PPL, Upper/Lower, Full Body, Bro Split
Custom split creation
Auto-detection of current day's workout
Append workouts to daily notes
Weekly note aggregation
Templater token: {{gym-buddy-weekly-links}}
Compatible with Periodic Notes plugin
Settings → Community plugins → Browse
Search "Gym Buddy"
Install and enable
Download main.js, manifest.json, styles.css from the latest release
Create
Copy files into the folder
Settings → Community plugins → Enable "Gym Buddy"
Start workout: Cmd/Ctrl + P → "Gym Buddy: Start workout"
Add exercise: Search or browse by muscle group
Log sets: Adjust weight/reps with steppers, tap "Log Set"
Finish: Tap "Finish Workout" to save to vault
Workouts are saved as markdown files with YAML frontmatter:
---
type: workout
date: 2025-12-23
duration: 52
split: Push
muscles: [chest, shoulders, triceps]
volume: 15420
---
## Bench Press
| Set | Weight | Reps | RPE |
|-----|--------|------|-----|
| 1 | 185 | 8 | 7 |
| 2 | 185 | 7 | 8 |
| 3 | 185 | 6 | 9 |
TABLE duration, volume, split
FROM "Workouts"
WHERE type = "workout"
SORT date DESC
| Setting | Description | Default |
|---|---|---|
| Workout folder | Where workout files are saved | Workouts |
| Units | Weight unit (lbs or kg) | lbs |
| Show RPE | Display RPE field when logging sets | On |
| Rest timer | Enable rest timer between sets | On (90s) |
| Daily note integration | Append workout summary to daily note | Off |
| Weekly notes | Aggregate workouts to weekly notes | Off |
| Periodic Notes | Auto-detect paths from Periodic Notes plugin | On |
| Templater token | Enable {{gym-buddy-weekly-links}} token |
Off |
| Prompt for split | Ask which split when starting workout | On |
Planned:
See CHANGELOG.md for version history.
Open to suggestions — open an issue!
git clone https://github.com/AmilMasic/gym-buddy
cd gym-buddy
npm install
cp .env.example .env
# Set VAULT_PLUGIN_DIR in .env
npm run dev:vault # Hot reload to vault
npm run build # Production build
Requires Hot-Reload plugin for development.
Issues and PRs welcome. For major changes, please open an issue first.
Exercise data from free-exercise-db by yuhonas.
0-BSD