SirHobby290 downloadsdoms is an opinionated, mobile-first workout tracker, logger and reference. Pick a routine, log a session in one tap, and keep the data as plain markdown.
Delayed Onset Muscle Soreness. An opinionated, mobile-first workout tracker for Obsidian.
Most workout apps optimise for logging detail. This one optimises for showing up. No weights, no reps, no PRs, no exercise names in the log. Just sets per muscle group, and whether you completed your week.
Your training history is plain markdown in your own vault. If this plugin disappears tomorrow, your data is still readable, queryable, and yours.
Week: your routine as a set of slots. Tap one, count your sets as you go, log it. One tap logs the whole session as planned if you did exactly that. Trained something the session doesn't list? Tap + to add any body part (abs after push day, grip work, whatever it was) and it logs like the rest.
Counting is saved as you go. Put your phone away between sets, switch to another note, come back tomorrow. The workout is still there, marked In progress on its card, with Continue and Discard. Nothing reaches your log until you commit it, so undo stays a single deleted file.
Forgot yesterday? Every logging screen carries a date, so you can put the session on the day it actually happened. Log a custom workout at the bottom of the Week tab covers anything your routine didn't ask for: a missed session, an extra one, or something that fits no template at all. Pick the body parts you trained and log it; change the date in the header if it wasn't today. Backdating reaches 30 days, and a backdated session counts fully toward that week's totals, completion and streak.
Stats: sessions, current and best week streak, total sets, a month-by-month activity calendar, and this week's sets for each body part against what your routine asks of it, as a bar you can watch move.
Ideas: a browsable exercise library across 20 categories, with technique videos. Grouped and collapsed by default, so it opens as a short list rather than a wall of tabs.
Rehab: physio-style strengthening for the small stabilising muscles that heavy lifts under-train. Rotator cuff, shoulder blades, hips, adductors, knees, shins, ankles, feet, wrists and more.
| Routine | Week | Sets |
|---|---|---|
| Three days a week (default) | Upper · Lower · Full body | ~49 |
| Upper / lower, five days | Upper ×2 · Lower ×2 · Cardio | ~64 |
| Push / pull / legs, seven days | Push ×2 · Pull ×2 · Legs ×2 · Cardio | ~132 |
| Powerlifting, seven days | Bench ×2 · Pull ×2 · Squat · Deadlift · Cardio | ~86 |
| Custom | Nothing prescribed, you set the number | your call |
On Custom there are no preset workouts. Build each session from the body parts you actually trained, and set your own bar for the week in settings. Any workout you log counts toward it, whatever it was, and, as on every other routine, extra sessions are a bonus that never raises the bar.
Weekly volume targets are derived from whichever routine you pick, never hardcoded, so a perfectly executed week never reads as a failure. Push / pull / legs is sized so every tracked body part lands on twelve sets a week: six gym days should deliver more than three.
Body parts that carry a target are the ones a routine is built around. Abs and rehab work don't: they're logged and counted the same way, and show up in your stats as sets done, but no bar ever tells you that you owe rotator cuff work.
Each session records the routine you were following at the time, so switching later leaves your past weeks judged by what you actually did.
Powerlifting is push, pull and legs with the three competition lifts written into it. Each lift gets a heavy day and a lighter second one across the week: bench on both push days, the squat heavy on one leg day and moderate on the other, the deadlift heavy on one and RDLs or speed pulls on the other.
It is the only routine that goes beyond sets. Squat, bench press and deadlift each log the weight on the bar for every set, in the order you did them. Still no reps, because sets are what this app counts. Just the one extra number a main lift needs.
Those sets count toward your muscle volume exactly like any other set, so targets and the calendar keep working without a second system to reconcile. The weights get their own read-out on the Stats tab: a chart of your top set over time, and four numbers under it: your PR, how far it is from your goal, your average weight per set, and total sets logged.
Settings → Plan picks pounds or kilograms and holds a goal per lift. Every session note stamps the unit it was written in, so changing the unit later never reinterprets a number you already logged, and a goal is optional: leave it empty and the card simply says so.
Cardio, and any "different workout", can carry how long it took: 20, 30, 45, 60 or 90 minutes, or a number of your own. It is optional everywhere: skip it and the session logs exactly as it always did.
Duration feeds the same intensity reading sets do: a day is scored by whichever is heavier, its set count or its time on the clock, so a two hour hike no longer paints the same faint square on the month calendar as a ten minute walk.
Each session records the routine you were following at the time, so switching later leaves past weeks judged by what you actually did. Switching mid-week offers to hold off until the next one starts, so a week you are partway through does not suddenly read as unstarted.
One markdown note per session, in a folder you choose:
---
doms: session
date: 2026-07-30
week: 2026-W31
template: lower
plan: three-day
slot: required
sets:
quads: 5
hamstrings: 4
glutes: 4
calves: 3
total_sets: 16
---
Felt strong. Knee twinge on the last set of extensions.
Flat frontmatter, so Dataview and Bases can query your training history without the plugin. Your notes below the frontmatter are never touched.
Three blocks you can embed in any note. They are in-note widgets, not home screen widgets. Obsidian's mobile apps ship a fixed set of OS widgets and there is no API for a plugin to add to it. For a home screen tap, see One tap from your home screen below.
Each has an "Insert …" command, so you do not have to type the fence by hand: open the command palette in a note and search for D.O.M.S: Insert.
Activity: days trained this month.
```doms-activity
view: calendar
```
view: dots for a compact version, summary: false to hide the count.
Quote of the day: one line, the same all day, no repaint flicker.
```doms-quote
category: stoicism
```
Categories: lifting, combat, anime, games, philosophy. Omit for any.
Quick log: a big button straight to the logging screen.
```doms-log
session: upper
```
Unrecognised options fall back to the default rather than breaking your note.
The plugin registers a URL scheme, so an Apple Shortcut or Android shortcut can jump straight to logging:
obsidian://doms?action=log&session=upper
There's also a Quick log a session command, which you can add to the Obsidian mobile toolbar to reach it from anywhere in the app.
Honest limitation: the shortcut still cold-launches Obsidian. It gets you one tap from your home screen to the logging screen. It can't log in the background. No plugin can.
D.O.M.S inherits your theme by default. There's an accent picker with six presets if you want it, plus block-letter titles you can switch off or resize.
Everything is scoped to the plugin, so a preset can never leak into the rest of your vault. To style it yourself, target:
.doms-view { --doms-accent: #yourcolour; }
For a celebration with your own images, point Settings → Celebration at a vault folder of png, jpg or gif files.
From Obsidian: Settings → Community plugins → Browse → search "D.O.M.S".
Manually: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/doms/, then enable it in Settings → Community plugins.
Works on desktop and mobile. No internet connection required.
The Ideas and Rehab content is seeded into your vault as markdown notes you own. Add your own entries, delete ones you don't want, or rewrite them entirely. The plugin reads them and never overwrites your edits.
Videos link out to their creators on YouTube. Nothing is embedded or reproduced; every link is attributed on the card.
The Rehab tab is general information, not a substitute for a clinician's guidance. If something is getting worse, get it looked at.
MIT