I’ve been using Claude Code for my workouts, and it’s honestly made exercise a lot more fun. I look forward to working out because of it.
The Setup
The core idea is simple: use Claude Code inside Cursor with an Obsidian vault that contains all my health history, workout logs, equipment inventory, and progress tracking. Claude has context about everything fitness-related in my life.

The vault is structured like this:
01 - Workouts/
├── Logs/ # Completed workouts (49 sessions so far!)
├── Weight Training/ # Strength programs
└── EMOM/ # Cardio workouts
02 - Templates/ # Workout templates
03 - Equipment/ # What I own and can use
04 - Progress/ # Weight tracking & analytics
05 - Resources/ # Fitness guides
Custom Slash Commands
I built three custom slash commands that make the whole system work:
/new-workout [type]
Creates a new workout based on my last session of that type:
---
allowed-tools: Read, Glob, Write, Edit, LS
description: Start a new workout based on the last session of that type
argument-hint: [workout-type] (e.g., "legs", "push", "pull")
---
1. Find the most recent workout log of type "$ARGUMENTS"
2. Analyze previous performance and weights used
3. Check available equipment in @"03 - Equipment/Equipment Inventory.md"
4. Create new workout with appropriate progressions
5. Add "Last time" notes for each exercise showing previous weights/reps
So if I run /new-workout push, Claude:
- Looks at my last push day
- Sees I did 40 lb dumbbell bench press for 12 reps last time
- Knows my equipment (from the inventory file)
- Creates today’s workout with progressive overload
- Adds “Last time: 40 lbs × 12 reps” notes
/weight [lbs] [notes]
Logs weight to my tracker with automatic change calculation:
---
allowed-tools: Read, Edit
description: Log weight entry to Weight Tracker
argument-hint: <weight_in_lbs> [notes]
---
1. Read the current Weight Tracker file
2. Calculate the change from the most recent entry
3. Update the "Current Stats" section
4. Add a new row at the top of the weight log table
Example: /weight 185.2 feeling great → automatically logs with date and calculates ±change.
/end-workout
Wraps up the session and saves everything to the logs folder.
Custom Output Style: Workout Partner
I created a custom output style that transforms Claude into a disciplined workout coach:
---
description: Professional workout coach for structured training support
---
You are a disciplined workout coach providing structured support during
exercise sessions. Your role is to:
**Real-Time Workout Support:**
- Track current exercise progress and what's coming next
- Give precise form corrections and technique reminders
- Provide brief status updates between sets
- Record reps, weight, and performance notes
- Monitor rest periods and signal when to resume
**Communication Style:**
- Keep responses SHORT and direct during active training
- Use clear, professional language: "Set complete." "Rest 90 seconds."
- Be firm but fair - acknowledge effort without excessive praise
- Save analysis for post-workout review
Stay focused on the task. Execute with precision. No excuses.
The output style keeps Claude brief and focused during workouts. Instead of verbose explanations, I get:
- “Set complete. Rest 90 seconds.”
- “Maintain form. Control the descent.”
- “RPE 8. Good work.”
Why It Works
Context awareness: Claude knows my equipment, past performance, and current goals. No explaining “I only have dumbbells up to 50 lbs” every time.
Progressive overload tracking: It automatically suggests weight increases when I hit the top of my rep range.
Form reminders: Based on my logged issues (like “elbow pain on dips”), it proactively reminds me about neutral grip alternatives.
Gamification: There’s something about having an AI track your progress that makes you want to show up consistently. I’m at 49 workout sessions now.
Speech to text friendly: You can use voice commands instead of typing between sets. (Warning: your touchpad will get sweaty otherwise.)
Learn More
If you want to build your own custom Claude Code workflows:
- Slash Commands Documentation - How to create custom commands
- Output Styles Documentation - How to modify Claude’s behavior and tone
- Claude Code Best Practices - Official engineering guide
Final Thoughts
This is very much a work in progress. I’m constantly tweaking the slash commands and output style based on what works during actual workouts.
The key insight: Claude Code isn’t just for coding. It’s a general-purpose AI agent that can track, analyze, and assist with any structured activity. Fitness just happens to be highly structured and trackable.
I’ve found it genuinely makes working out more engaging. Having an AI that knows your complete workout history and can intelligently adjust your program is surprisingly motivating.