Gym Buddy

pending

by Amil Masic

Log workouts with lightning-fast mobile UX. Markdown-native storage with Dataview compatibility and progress visualization.

1 starsUpdated 3mo ago0BSDDiscovered via Obsidian Unofficial Plugins
View on GitHub

Gym Buddy

Fast workout logging for Obsidian Mobile. Log sets with minimal taps, store everything in plain markdown.

Overview

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.

Features

Efficient Logging

  • Steppers for weight/reps instead of keyboard input

  • Pre-fills previous workout values as defaults

  • Large touch targets for one-handed operation

Mobile-Optimized

  • Interface designed for 30-90 second rest windows

  • Works with gloves or sweaty hands

  • Minimal navigation required

Markdown-Based

  • Workouts saved as standard markdown with YAML frontmatter

  • Full Dataview compatibility

  • Integrates with daily/weekly note workflows

Exercise Database

  • 800+ exercises from free-exercise-db

  • Filterable by muscle group

  • Recent/favorites tracking

Training Splits

  • Built-in templates: PPL, Upper/Lower, Full Body, Bro Split

  • Custom split creation

  • Auto-detection of current day's workout

Integrations

  • Append workouts to daily notes

  • Weekly note aggregation

  • Templater token: {{gym-buddy-weekly-links}}

  • Compatible with Periodic Notes plugin

Installation

Community Plugins (pending)

  1. Settings → Community plugins → Browse

  2. Search "Gym Buddy"

  3. Install and enable

Manual Install

  1. Download main.js, manifest.json, styles.css from the latest release

  2. Create /.obsidian/plugins/gym-buddy/

  3. Copy files into the folder

  4. Settings → Community plugins → Enable "Gym Buddy"

Usage

  1. Start workout: Cmd/Ctrl + P → "Gym Buddy: Start workout"

  2. Add exercise: Search or browse by muscle group

  3. Log sets: Adjust weight/reps with steppers, tap "Log Set"

  4. Finish: Tap "Finish Workout" to save to vault

Data Format

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   |

Dataview Example

TABLE duration, volume, split
FROM "Workouts"
WHERE type = "workout"
SORT date DESC

Settings

SettingDescriptionDefault
Workout folderWhere workout files are savedWorkouts
UnitsWeight unit (lbs or kg)lbs
Show RPEDisplay RPE field when logging setsOn
Rest timerEnable rest timer between setsOn (90s)
Daily note integrationAppend workout summary to daily noteOff
Weekly notesAggregate workouts to weekly notesOff
Periodic NotesAuto-detect paths from Periodic Notes pluginOn
Templater tokenEnable {{gym-buddy-weekly-links}} tokenOff
Prompt for splitAsk which split when starting workoutOn

Roadmap

Planned:

  • Exercise history view
  • Periodization support
  • Streak tracker & badges

See CHANGELOG.md for version history.

Open to suggestions — open an issue!

Development

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.

Contributing

Issues and PRs welcome. For major changes, please open an issue first.

Acknowledgments

Exercise data from free-exercise-db by yuhonas.

License

0-BSD


Buy Me A Coffee

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.