Gym Tracker

approved

by Real-Fruit-Snacks

Track gym workouts, exercise volume, streaks, and history on mobile and desktop. - This plugin has not been manually reviewed by Obsidian staff.

2 stars230 downloadsUpdated 16d agoMIT
Gym Tracker — strength workouts and rucks in your vault

Track strength workouts and rucks inside Obsidian — sets, reps, RPE, routines, insights, streaks, and personal records, on desktop and mobile.

License: MIT Latest release Obsidian

Documentation · Report an issue · Contributing


Overview

Your training log belongs next to your notes, not in another subscription app. Gym Tracker keeps structured workout data inside Obsidian: log strength sessions and rucks as you train, review volume trends and personal records in Insights, and export sessions as Dataview-friendly Markdown notes. The layout is responsive, so it works the same on your phone at the gym as it does on your desktop.

Features

  • Detailed logging — log strength workouts with exercises, sets, reps, weight, RPE, RIR, completion state, and notes, with a built-in rest timer.
  • Ruck tracking — track rucks with distance, duration, pack weight, elevation gain, route, RPE, pace, and load-distance.
  • GPX import — import a GPX file and the ruck's date, distance, duration, elevation gain, and route name are filled in automatically.
  • Routines — save routines, edit them later, and load them into a new workout.
  • Insights & calendar — review weekly volume, workout totals, ruck mileage, streaks, exercise progress, progression suggestions, and personal records; browse workouts by month in the Calendar.
  • Exercise library — search a built-in library of common lifts and jump straight from an exercise to its history.
  • Export & backup — export workouts to Dataview-friendly Markdown with YAML frontmatter, and create a full JSON backup from the command palette.

Installation

Requires Obsidian 1.7.2 or newer.

Community plugins (recommended)

  1. Open Settings → Community plugins → Browse.
  2. Search for Gym Tracker, then Install and Enable.

Manual

Download main.js, manifest.json, and styles.css from the latest release into <your-vault>/.obsidian/plugins/gym-tracker/, then enable Gym Tracker under Settings → Community plugins.

From source

git clone https://github.com/Real-Fruit-Snacks/obsidian-gym-tracker.git
cd obsidian-gym-tracker
npm install
npm run build

Copy or symlink the repository into <your-vault>/.obsidian/plugins/gym-tracker/, then reload Obsidian and enable the plugin.

Getting started

  1. Open Gym Tracker — click the dumbbell ribbon icon or run Gym Tracker: Open view from the command palette.
  2. Log a session — build a strength or ruck draft, load a routine, import a GPX file, run the rest timer, and save.
  3. Review and export — check Insights for trends and records, then export sessions as Markdown notes for the rest of your vault.

Views

ViewWhat it's for
WorkoutBuild a strength or ruck draft, load routines, import GPX files, run the rest timer, and save the session
InsightsTotals, weekly trends, exercise progress, progression suggestions, and personal records
CalendarBrowse workouts by date and create a workout for a selected day
RoutinesStart, edit, or delete reusable workout templates
LibraryFilter exercises, add your own, inspect history, edit, or delete entries
HistoryReview, edit, export, or delete saved workouts

Commands

CommandDescription
Open viewOpen the Gym Tracker view
Export latest workout to noteWrite the most recent workout to a Markdown note
Export tracker backup JSONCreate a portable JSON backup in the export folder
Load demo dataFill the tracker with sample data to explore the views
Clear tracker dataReset the tracker to a blank state

Settings

SettingDefaultDescription
Weight unitlbUsed for labels and exports
Auto-export workoutsOffCreate or update the Markdown workout note after each save
Link exercise notesOnUse wiki links for exercises in exported workout notes
Create exercise notesOffAutomatically create missing exercise notes when saving a workout
Default rest timer120Default rest duration in seconds
Default workout typeStrengthPre-filled when you start a new workout
Export folderGym/WorkoutsFolder where exported workout notes are created
Exercise folderGym/ExercisesFolder where exercise notes are created

GPX import

Switch a workout to Ruck mode and select Import GPX. Gym Tracker calculates route distance from the GPX track points, elevation gain from positive elevation changes, and elapsed duration from the first and last timestamps. Enter pack weight and RPE after import to calculate load-distance and preserve how the ruck felt.

Data and privacy

Workout data is stored through Obsidian's plugin data storage, inside your vault. GPX files are read locally in the Obsidian app. Gym Tracker never sends workout or location data to an external service — the plugin makes no network requests at all.

Run Gym Tracker: Export tracker backup JSON from the command palette any time to create a portable backup in your configured export folder.

Dataview examples

Exported workout notes carry YAML frontmatter, so Dataview queries work out of the box.

Recent workouts:

TABLE date, workout_type, duration_minutes, volume, set_count
FROM "Gym/Workouts"
WHERE record_type = "workout"
SORT date DESC

Rucks:

TABLE date, distance, distance_unit, duration_minutes, pack_weight, pace_minutes_per_mi
FROM "Gym/Workouts"
WHERE workout_mode = "ruck"
SORT date DESC

Bench press sessions:

TABLE date, volume, set_count
FROM "Gym/Workouts"
WHERE contains(exercises, "Bench Press")
SORT date DESC

Architecture

obsidian-gym-tracker/
├── manifest.json        Plugin metadata
├── versions.json        Plugin version → minimum Obsidian version map
├── src/main.ts          Plugin source (TypeScript, single file)
├── tests/               Vitest unit tests for the data layer
├── styles.css           Plugin styles
├── esbuild.config.mjs   Build configuration
└── docs/                Documentation site and artwork
  • Single-file source — the whole plugin lives in src/main.ts, bundled with esbuild.
  • Tested data layer — the data normalizers, volume/pace math, and Markdown/YAML escaping are covered by a Vitest suite (npm test), which also runs in CI on every push and before each release.
  • Safe writes — the only notes the plugin creates or updates are the exports you ask for (workout notes, exercise notes, backups), inside the folders you configure.
  • No network, no telemetry — the plugin never talks to the network.

Contributing

Contributions are welcome — see CONTRIBUTING.md and CODE_OF_CONDUCT.md for guidelines on pull requests and issues.

License

Released under the MIT License.

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.