Workout AI Tracker

pending

by avlihachev

Advanced workout tracker with AI analysis powered by Claude. Track exercises, analyze progress, and get personalized recommendations.

ā˜… 1 starsUpdated 4mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

šŸ‹ļø Workout AI Tracker for Obsidian

Advanced workout tracking plugin for Obsidian with AI-powered analysis using Claude API.

✨ Features

šŸ“ Workout Tracking

  • āœ… Template-based workouts - Select from 5 default templates or create custom ones
  • āœ… Quick workout entry with modal interface
  • āœ… Track weight, reps, RPE, heart rate for each set
  • āœ… Warmup/cooldown cardio activities (elliptical, rowing, etc.)
  • āœ… Automatic markdown file generation with Obsidian Base properties
  • āœ… Organized in customizable folder structure
  • āœ… Progress tracking within workout (exercise X of Y)

ā±ļø Built-in Tools

  • āœ… Rest timer with countdown and notifications
  • āœ… Quick add exercise to today's workout
  • āœ… Progressive volume and set tracking
  • āœ… Duration tracking

šŸ¤– AI-Powered Analysis

  • āœ… Claude API integration for intelligent workout analysis
  • āœ… Progress tracking (weights, reps, volume)
  • āœ… Program recommendations
  • āœ… Recovery analysis
  • āœ… Imbalance detection
  • āœ… Personalized training advice

šŸ“Š Data Organization

  • āœ… Uses Obsidian Base (properties in frontmatter)
  • āœ… Markdown files for full-text search
  • āœ… Git-friendly version control
  • āœ… No external dependencies

Below are some screenshots of the app in action:

New Workout Selection

New Workout Selection

Template Management

Template Management

Workout Session

Workout Session

šŸš€ Installation

Manual Installation

  1. Download the latest release
  2. Extract files to .obsidian/plugins/workout-ai-tracker/ in your vault
  3. Reload Obsidian
  4. Enable "Workout AI Tracker" in Settings → Community Plugins

From Source

git clone https://github.com/yourusername/obsidian-workout-ai
cd obsidian-workout-ai
npm install
npm run build

Copy main.js, manifest.json, and styles.css to your vault's plugins folder.

āš™ļø Setup

1. Get Claude API Key

  1. Go to https://console.anthropic.com/
  2. Create an account or sign in
  3. Generate an API key
  4. Copy the key (starts with sk-ant-...)

2. Configure Plugin

  1. Open Obsidian Settings
  2. Go to Workout AI Tracker
  3. Paste your Claude API key
  4. Set your workouts folder (default: Workouts)
  5. Configure default rest time (default: 90 seconds)

šŸ“– Usage

Starting a Workout

Method 1: Ribbon Icon

  • Click the šŸ‹ļø icon in the left ribbon
  • Select a template from the list (Day 1, Day 2, Day 3, Quick Upper, Quick Lower)
  • Click "Start" to begin the workout with pre-configured exercises
  • Or click "Create Empty Workout" for a custom workout

Method 2: Command Palette

  • Press Cmd/Ctrl + P
  • Type "Start new workout"
  • Press Enter
  • Select your template

Method 3: Hotkey (configure in settings)

  • Set custom hotkey for "Start new workout"

Using Workout Templates

The plugin comes with 5 default templates based on your optimized training program:

  1. Day 1 - Back and Biceps (60 min, 7 exercises)

    • Back and biceps focused workout
    • Includes Bent Over Row, Lat Pulldown, Seated Row, Face Pull, Hammer Curl, Cable Curl, Back Extension
  2. Day 2 - Chest, Shoulders and Triceps (65 min, 8 exercises)

    • Chest, shoulders, and triceps
    • Includes Bench Press, Incline Press, Overhead Press, Lateral Raise, Reverse Fly, Tricep Pushdown
  3. Day 3 - Legs and Abs (70 min, 9 exercises)

    • Legs and abs
    • Includes Goblet Squat, Leg Press, Romanian Deadlift, Bulgarian Split Squat, Leg Curl, Calf Raise, Abs exercises
  4. Quick Upper Body (30 min, 4 exercises)

    • Fast upper body workout
    • Push-ups, Pull-ups, Overhead Press, Dumbbell Row
  5. Quick Lower Body (30 min, 4 exercises)

    • Fast lower body workout
    • Goblet Squat, Lunges, Romanian Deadlift, Calf Raises

Managing Templates:

  • Press Cmd/Ctrl + P and type "Manage workout templates"
  • āœļø Edit any template (default or custom):
    • Default templates: Creates a new custom copy when saved
    • Custom templates: Updates the existing template
  • āž• Create new templates from scratch with the "+" button
  • šŸ“‹ Duplicate templates to create variations
  • šŸ—‘ļø Delete custom templates (default templates are protected)
  • Custom templates are saved in plugin data.json (persistent, synced with vault)

Template Editor Features:

  • Edit template name, description, and tags
  • Add/remove/reorder exercises within the template
  • Configure sets, reps range (min-max), and rest time for each exercise
  • Set target weights as suggestions for exercises
  • Add exercise notes (technique tips, progression advice)
  • Set estimated workout duration
  • Enable/disable warmup and cooldown (with duration)
  • Save validates that name and at least one exercise are present

Tracking Exercises

When using a template, the plugin guides you through each exercise:

  1. Current Exercise Info - Shows exercise name, target sets/reps, rest time, and notes
  2. Set Counter - Displays which set you're on (e.g., "Set 2 of 3")
  3. Input Weight and Reps - Enter the weight (kg) and repetitions completed
  4. Optional Fields - Add RPE (1-10) and heart rate if desired
  5. Add Set - Click to record the set
  6. Progress Automatically - Plugin moves to next set or exercise
  7. Skip Exercise - Option to skip if needed
  8. View Completed - See summary of all completed sets
  9. Finish Workout - Save to markdown file when done

Template-Free Workouts:

  • Choose "Create Empty Workout" for custom workouts
  • Manually enter each exercise name as you go
  • Add sets one at a time with full flexibility

Using Rest Timer

  • After completing a set, press Cmd/Ctrl + P
  • Type "Start rest timer"
  • Timer countdown begins
  • Skip anytime or wait for completion

AI Analysis

Analyze Recent Workouts:

  1. Open any note
  2. Press Cmd/Ctrl + P
  3. Type "Analyze workouts with AI"
  4. Wait for AI analysis
  5. Analysis inserted into current note

What AI Analyzes:

  • šŸ“ˆ Progress trends (weight/reps/volume)
  • šŸ’” Program recommendations
  • 😓 Recovery assessment
  • āš–ļø Muscle group imbalances
  • šŸŽÆ Specific next-workout advice

šŸ“ File Format

Generated Workout File

---
date: 2025-11-08
program: Day 1 - Back and Biceps
duration: 45
totalSets: 18
totalVolume: 2450
type: workout
---

# Day 1 - Back and Biceps

šŸ“… 2025-11-08 | ā±ļø 45 min | šŸ’Ŗ 18 sets | šŸ“Š 2450 kg volume

## šŸƒ Warmup

- **Type:** Elliptical
- **Duration:** 10 min
- **Resistance:** 7
- **Incline:** 8
- **Average HR:** 118 bpm

## šŸ’Ŗ Exercises

### Bent Over Row (Barbell)

| Set | Weight (kg) | Reps | RPE | HR | Rest (sec) |
| --- | ----------- | ---- | --- | --- | ---------- |
| 1   | 20          | 12   | 7   | 135 | 90         |
| 2   | 20          | 12   | 8   | 138 | 90         |
| 3   | 20          | 12   | 9   | 142 | 90         |

### Lat Pulldown (Machine)

| Set | Weight (kg) | Reps | RPE | HR | Rest (sec) |
| --- | ----------- | ---- | --- | --- | ---------- |
| 1   | 40          | 12   | 7   | 130 | 90         |
| 2   | 40          | 12   | 8   | 133 | 90         |
| 3   | 40          | 11   | 9   | 137 | 90         |

## šŸƒ Cooldown

- **Type:** Elliptical
- **Duration:** 10 min
- **Resistance:** 7
- **Incline:** 8
- **Average HR:** 115 bpm

## šŸ“ Notes

Great workout! Feeling progress on rows.

Obsidian Base Properties

Properties automatically added to frontmatter:

  • date - Workout date (YYYY-MM-DD)
  • program - Program name
  • duration - Total minutes
  • totalSets - Number of sets completed
  • totalVolume - Total kg lifted (weight Ɨ reps)
  • type - Always "workout" for filtering

Querying with Dataview

TABLE duration, totalSets, totalVolume
FROM "Workouts"
WHERE type = "workout"
SORT date DESC
LIMIT 10
TABLE WITHOUT ID
  date as "Date",
  duration as "Duration (min)",
  totalVolume as "Volume (kg)"
FROM "Workouts"
WHERE program = "Day 1 - Back and Biceps"
SORT date DESC

šŸŽØ Customization

Custom CSS

Add to your vault's .obsidian/snippets/workout-custom.css:

/* Custom workout card styling */
.exercise-item {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}

/* Timer styling */
.timer-display {
  color: #ff6b6b;
  font-size: 96px;
}

šŸ”§ Advanced Usage

Templates

Create a template in Templates/Workout Template.md:

---
date: { { date } }
program: { { title } }
type: workout
---

# {{title}}

## Warmup

- [ ] 10 min elliptical

## Exercises

- [ ] Exercise 1
- [ ] Exercise 2

## Cooldown

- [ ] 10 min elliptical

Dataview Dashboards

Create Workouts Dashboard.md:

# šŸ‹ļø Workout Dashboard

## This Week

```dataview
LIST duration + " min"
FROM "Workouts"
WHERE type = "workout" AND date >= date(today) - dur(7 days)
SORT date DESC
```

## Total Volume by Program

```dataview
TABLE WITHOUT ID
  program as "Program",
  sum(totalVolume) as "Total Volume (kg)",
  count(rows) as "Sessions"
FROM "Workouts"
WHERE type = "workout"
GROUP BY program
```

## Recent PRs

```dataview
TABLE date, program, totalVolume
FROM "Workouts"
WHERE type = "workout"
SORT totalVolume DESC
LIMIT 5
```

šŸ¤ Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

šŸ“„ License

MIT License - see LICENSE file for details

šŸ™ Acknowledgments

  • Obsidian team for amazing plugin API
  • Anthropic for Claude API
  • Community plugin developers for inspiration

šŸ› Bug Reports

Report issues at: https://github.com/yourusername/obsidian-workout-ai/issues

šŸ“® Support

  • GitHub Discussions: Ask questions and share ideas
  • Email: your@email.com

Made with šŸ’Ŗ for the Obsidian community

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.