Tools
Fitness Coach
๐๏ธ Adaptive fitness & nutrition coaching plugin for OpenClaw
Install
npm install
openclaw
Configuration Example
plugins:
entries:
fitness-coach:
enabled: true
config:
dataDir: ~/.openclaw/fitness-coach # where data is stored
README
# ๐๏ธ openclaw-fitness-coach
An adaptive fitness & nutrition coaching plugin for [OpenClaw](https://github.com/openclaw/openclaw).
Turns your AI assistant into a personalized fitness coach that tracks workouts, meals, and health โ with configurable coaching personality and data-driven feedback.
## Features
- **๐ Workout Tracking** โ Log completed, skipped, or modified workouts with RPE and mood
- **๐ฅ Meal Tracking** โ Log meals and snacks, track nutrition patterns
- **๐ง Adaptive Coach** โ Configurable personality (pushiness 1-5, tone, language)
- **๐ Data-Driven Feedback** โ Streaks, completion rates, trends, weekly/monthly stats
- **๐ Smart Nudges** โ Proactive check-ins based on patterns (missed meals, skipped workouts, injuries)
- **๐พ Persistent Memory** โ JSONL-based storage, survives restarts, fast append-only logs
## How It Works
The plugin doesn't generate workouts itself โ it provides **memory, tools, and context** to your OpenClaw agent. The LLM acts as the coach, powered by rich fitness context injected into every conversation.
### Architecture
```
Your AI Assistant (Claude, GPT, etc.)
โ
OpenClaw Gateway
โ
fitness-coach plugin
โโโ Memory Prompt Section (injected every turn)
โ โโโ User profile & goals
โ โโโ Recent workouts (14 days)
โ โโโ Recent meals (7 days)
โ โโโ Computed stats & trends
โ โโโ Active nudges
โโโ Tools
โโโ fitness_log โ log workouts
โโโ meal_log โ log meals
โโโ fitness_feedback โ health/energy/preferences
โโโ fitness_history โ query workout data
โโโ meal_history โ query nutrition data
โโโ fitness_stats โ computed metrics
โโโ fitness_profile โ update goals/equipment
โโโ coach_settings โ adjust coaching style
```
## Installation
```bash
openclaw plugins install @pascalhahn/openclaw-fitness-coach
```
Or manually:
```bash
cd ~/.openclaw/extensions
git clone https://github.com/pascalhahn/openclaw-fitness-coach.git
cd openclaw-fitness-coach
npm install
openclaw gateway restart
```
## Configuration
In your OpenClaw config:
```yaml
plugins:
entries:
fitness-coach:
enabled: true
config:
dataDir: ~/.openclaw/fitness-coach # where data is stored
```
## Coach Personality
Adjust how your coach communicates:
| Setting | Values | Default |
|---------|--------|---------|
| `pushiness` | 1 (gentle) โ 5 (drill sergeant) | 3 |
| `communicationTone` | supportive, direct, tough-love, humorous | supportive |
| `checkInFrequency` | minimal, moderate, proactive | moderate |
| `nutritionFocus` | none, light, moderate, strict | moderate |
| `celebrateWins` | true/false | true |
| `language` | any ISO code | de |
Change via the `coach_settings` tool or ask your assistant: *"Sei strenger mit mir"* / *"Be more pushy"*
## Recommended Cron Setup
```bash
# Morning workout (weekdays 6:15)
openclaw cron add --at "06:15" --weekdays mon,tue,thu,fri \
--message "You're the user's fitness coach. Generate today's workout."
# Lunch meal check-in (weekdays 12:30)
openclaw cron add --at "12:30" --weekdays mon,tue,wed,thu,fri \
--message "Casually ask what the user had for lunch."
# Evening check-in (training days 20:30)
openclaw cron add --at "20:30" --weekdays mon,tue,thu,fri \
--message "Check if today's workout was logged. Give appropriate feedback."
# Weekly review (Sunday 20:00)
openclaw cron add --at "20:00" --weekdays sun \
--message "Generate a weekly fitness & nutrition summary with stats."
```
## Data Storage
All data is stored as local files (no external services needed):
```
~/.openclaw/fitness-coach/
โโโ profile.json # User profile + coach settings
โโโ workout-log.jsonl # All workouts (append-only)
โโโ meal-log.jsonl # All meals (append-only)
โโโ feedback-log.jsonl # Health/energy feedback (append-only)
```
## Development
```bash
git clone https://github.com/pascalhahn/openclaw-fitness-coach.git
cd openclaw-fitness-coach
npm install
npm test # run all 96 tests
npm run test:watch # watch mode
```
## License
MIT ยฉ Pascal Hahn
tools
Comments
Sign in to leave a comment