i-am-rudi936 downloadsTrack your workouts, exercises, and fitness progress in Obsidian
A completely free workout tracking solution for Obsidian that stays integrated with your vault while providing a full fitness-app like interface. You get an active session view, edit windows for the different note types (exercises, routines, and workout plans), and an app-like dashboard to manage it all from. Still every element of it lives in your vault. Every part is represented in a markdown note, and thus can be integrated into your personal knowledge management system. Everything is in plain text: You own your data.
A big issue with fitness tracking is usually the first setup: setting up your exercise library, migrating your routines and history. This is why this plugin comes with an exercise catalog of 1,324 exercises with instructions. Don't worry only exercises you actually use will show up in your Vault, so no needless clutter! The second issue is solved for those coming from Strong, simply export your history from there and get it into your vault with the "Import from Strong" feature in settings. You can automatically get all exercises you have used in a completed workout and from these completed workouts you can also extract the full routine with the provided command.
(I know many people use Hevy now, hope I can add this soon. I heard the export is pretty similar too Strong.)
A side note: Because everything is just markdown, you can have self-written scripts and even your agent of choice create and edit your Routines and Plans for you. Full automation without paying for an additional subscription!
The active session view is mainly built for mobile. It has all the features you would want (I hope, if not feel free to open a feature request ;D):
If you come from a fitness app this should look and feel familiar:
Pretty much what you expect:
Built your Exercise Library quickly from the catalog of 1,324 exercises or get them from the Strong import. If both can't get you what you need, you can create your own in the exercise editor. You can also merge the description from the catalog into exercises you have created. There are many different types: strength (kg,reps), cardio (min,km), reps-only (reps), duration-only (s).
Both feature an editor, that can be accessed from the command palette or directly from a dashboard. Routines organize a collection of exercises with sets, and exercise-specific notes into a workout. Plans organize a collection of routines into a multi-day schedule (settings specific days of the week is optional). Due to the inherent nature of everything being a note that can just be referenced, routines can be assigned to multiple plans without duplicating them.
Plan notes can be used to jot down notes about the your fitness plan related to it. Those notes wont show up in the interfaces the plugin provides.
An active session — sets, rest timer, notes |
A circuit — guided work and pause windows |
For those who like to do circuit training, simply change the type of the routine in the interface, or alternatively set the boolean property in the YAML frontmatter of the routine note. If you start it in an active session it will automatically enter it in circuit mode. All of the exercises in the routine must be duration-only for that.
This is what you are greeted with:
Settings → Community plugins → Workout Journal:
You can simply get it from the Obsidian community plugins browser, or install it manually:
https://github.com/I-am-Rudi/obsidian-workout-journal.gitlatest, or a specific release tag)npm installnpm run buildmain.js, manifest.json and styles.css into
<your vault>/.obsidian/plugins/workout-journal/The fastest path from a fresh install to your first logged set:
Everything the catalog adds goes under a ## Description heading. Everything
under ## Notes is yours — the plugin writes there only when you edit it
yourself, and never overwrites it.
---
wj-type: exercise
wj-id: ds-0025
wj-name: Barbell Bench Press
wj-muscle-groups: [pectorals, triceps, deltoids]
wj-exercise-type: strength
wj-equipment: barbell
wj-source: exercises-dataset
wj-source-id: "0025"
---
# Barbell Bench Press
## Description

Lie flat on a bench with your feet planted…
*© Gym visual — https://gymvisual.com/*
## Notes
Left shoulder twinges above 80 kg. Elbows tucked 45°.
During a session, tapping an exercise name opens that note in three tabs — Note, History and Description — so you can check your form cues, see what you lifted last month, and scribble something down without leaving the workout. Your notes also show up as a blue ribbon in session view.
[!note] The exercise descriptions are bundled with the plugin and work completely offline. The pictures are not: the note contains a link, and Obsidian loads it from a CDN when you look at it.
This is deliberate. The picture files are © Gym visual and are not covered by the dataset's MIT licence, so the plugin links to them where they are already published rather than copying them into your vault. If you would rather not load anything from the network, set Exercise images to No image in settings and the plugin will only ever write text.
Every note the plugin manages uses wj--prefixed YAML frontmatter, with
wj-type marking what it is: exercise, routine, plan or workout.
---
wj-type: workout
wj-id: "1672531200000"
wj-date: "2025-06-26"
wj-name: "Morning Run"
wj-duration: 30
wj-exercises:
- name: "Running"
sets:
- duration: 30
distance: 3
wj-notes: "Beautiful morning for a run"
---
# Morning Run
**Date:** 2025-06-26
**Duration:** 30 minutes
## Exercises
### Running
| Set | Reps | Weight | Duration | Distance | Rest |
| --- | ---- | ------ | -------- | -------- | ---- |
| 1 | - | - | 30 | 3 | - |
## Notes
Beautiful morning for a run
Alongside the notes, every completed set is appended to a flat performance CSV. That is what drives the previous-values pre-fill, and it means you can pull your whole training history into a spreadsheet whenever you want.
The plugin is MIT licensed — see LICENSE.
The exercise catalog comes from hasaneyldrm/exercises-dataset. The data is MIT licensed; the exercise images are © Gym visual and are used by linking only. See NOTICE.md for the full attribution.
Originally forked from obsidian-workout-tracker.