Saeed Ghorbani35 downloadsPlan, log and review your training in your own notes: today's session, how ready you feel, your week, an eating plan and daily habits with reminders, with an optional AI coach in Claude Code.
A science-based AI fitness coach that lives in your Obsidian vault. Pahlavan is an Obsidian plugin for strength training, workout logging and daily habits, with an AI coach in Claude Code that plans your training from your own goals, time and equipment, and looks back with you every week. Everything sits in plain files in your vault, so your data stays yours.
Shown with Isfahan Look, my free plugin for Obsidian's look: Persian tilework, palettes that follow the sun and a book-like page. Pahlavan works with any theme.
[!NOTE] Pahlavan is a free beta. I use it every day, and it may still change. Bug reports and ideas are welcome in GitHub issues.
The name is Persian for a champion, the wrestlers and heroes of the old stories. The logo's two meels are the clubs pahlavans swing in the zurkhaneh, the traditional house of strength.
Pahlavan has two parts that work on the same files: a plugin, the screens you see in Obsidian, and a coach you talk to in Claude Code. Under both sits one engine. The coach designs your plan; the engine does the numbers and checks the plan against the safety rules and the evidence.
The session to do, with how to do each movement and why it's in your plan, the sets and reps to aim for, swaps when a lift doesn't suit you today, and a checklist that ticks itself when you log. Around it: how ready you feel from the morning check-in, what's due today, and your week so far.
A body map of the sets each muscle got this week against its target (split into direct sets and half credit from helping lifts, with the parts of a muscle that training studies support, such as the side delts or the hamstrings at the knee), your strength trend for each logged lift, your consistency over the months, your weight trend, your body record and progress photos.

Your plan as phases, each made of two mesocycles that end in a light week (by default 4-week blocks of three loading weeks and a light week, so 8-week phases), with tests at the end of each phase. Below it, this block's sessions with their sets, reps and effort, the plan's standing rules (how each lift progresses, when the light weeks fall, what a bad day does), what's coming up, and the reason behind every exercise.

Supplements, water, protein and your own ticks, each with its reminder and its history. For desk work there are stand-ups, sitting time and desk breaks, with a chart of each day against your target.

The /fitness-coach skill in Claude Code:
Recorded from real sessions in a demo vault, with a made-up athlete: Sam, 34, at a desk all day, three gym days a week. Everything the coach says is its own words; long answers are cut where you see "…", and the notes between rounds (⋯ ⋯) are mine.
Intake: a safety screen, goals, priority muscles and a movement self-check, then a profile the engine has checked.
Plan: the open questions first (a movement finding, which priorities come first, the start date, what could derail it), then three candidate plans the coach designed and checked with the engine, and the plan written on a yes.
Eating plan: a screen first, then a plan built around the athlete's own meals and day.
The coach's rules live in one file, each with where it comes from: 98 linked sources, most of them from 2020 or later, from meta-analyses and reviews to trials. The rules that shape a plan (volume per muscle, effort in reps in reserve, load, rest, exercise order, progression, light weeks, cardio alongside lifting) were checked against 62 sources, each one read. Rules are graded: strong (consistent meta-analyses), moderate or weak, and a rule that's only a sensible default is called a heuristic, not dressed up as science. When the coach proposes your plan, each major choice comes with its evidence and its grade.
The plugin and the coach read and write the same files in your vault, and both get their numbers from one engine, so a number on a screen and a number in a letter always agree. Every number comes with its reason: why this weight, why a light week now, why this exercise is in your plan. The coach designs the plan and its standing rules; the engine calculates, checks every plan before it is written, and follows the coach's rules, naming the rule behind each target.
main.js, manifest.json and styles.css from the latest release into a folder named pahlavan inside your vault's .obsidian/plugins/, then enable it under Community plugins.
.claude/skills/fitness-coach/). It's also under Settings → Pahlavan → Coach./fitness-coach intake. Answer its questions; it writes your profile./fitness-coach plan. The coach designs your plan and, once you say yes, writes it. Today shows your first session.Each step ticks itself once its file is there. The user guide walks through every screen, and the exercise catalogue lists the 244 movements the coach chooses from, with how to do each (the command Pahlavan: Write the exercise catalogue puts the same list in your vault).
Do I need Claude Code? The screens open without it, but your plan comes from the coach's intake and plan steps, so you need it to use Pahlavan fully.
What does it cost? Pahlavan is free during the beta. 1.0 will be paid, and everyone who installs before 1.0 keeps it free: Pahlavan records the day it was first installed in your vault (nothing leaves your Mac), and its Settings tab shows it. Claude Code comes with Anthropic's Claude plans, which are separate from Pahlavan.
Where does my data go? Into plain JSON and Markdown files in your vault, nowhere else. The plugin makes no network requests. When you talk to the coach, Claude Code sends your messages and the files it reads to Anthropic under your own account, as it does for anything you do in Claude Code.
Does it work on my phone? No, Pahlavan is desktop only. On Windows and Linux the screens should work, but they aren't tested there yet.
Is it medical advice? No. See Safety below.
Pahlavan is a general fitness tool for adults 18 and over, not medical advice. If you have a health condition, check with a doctor before you start, and stop any exercise that hurts.
The coach screens for risks before it plans anything. It doesn't coach anyone under 18, refers pregnancy and the warning signs it asks about to a clinician, and never diagnoses.
node --version: from Obsidian's search path, then Homebrew's and Volta's usual folders, then your login shell.ioreg to read how long the keyboard and mouse have been idle, for sitting time. It never sees what you type.sips to turn photos you drop in (HEIC and others) into JPEG, at most 1600 pixels on the long side. It copies the photo into a temporary folder, converts it there, and removes the folder.plan-data.json, fitness-log-data.json, body-data.json and habits-data.json, in your fitness folder (Fitness/ unless you choose another in the settings).Fitness/Coach/: your profile, check-ins, letters, decisions, eating plan and tracked items. Sitting time is kept per computer in Fitness/Coach/sitting.json, under each computer's name.Fitness/Progress Photos/..claude/skills/fitness-coach/, when you set it up..obsidian/plugins/pahlavan/.Pahlavan is free during the beta, and stays free for everyone who installs before 1.0. If it helps you, you can buy me a coffee on Ko-fi. Bugs and ideas go in GitHub issues.
Copyright 2026 Saeed Ghorbani. Pahlavan is source-available under the Elastic License 2.0: you may use it, read its code and change it. You may not offer it to others as a hosted or managed service, get around or remove a licence key, or remove its licence and copyright notices. It's free during the beta.
The Progress body map draws the outlines and muscle shapes of react-native-body-highlighter, in plugin/src/ui/body-map.ts, under its MIT License:
MIT License. Copyright (c) 2022 ELABBASSI Hicham. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
How the engine, the plugin and the coach fit together, and how to build and test them: docs/development.md. Release notes: CHANGELOG.md.