Skills wellness-coach

Launch a personalized AI wellness coach video session (Baymax persona) using Tavus CVI + Claude. Fetches real wearable health data (sleep, HRV, recovery) and Google Calendar events, builds a personalized system prompt, creates a live Tavus conversational video session, and delivers a morning briefing link via Telegram. Use when the user wants a daily wellness briefing, wants to talk to an AI wellness coach, wants guided breathing/meditation based on their health data, or asks to start their morning routine. Requires TAVUS_API_KEY, TAVUS_REPLICA_ID, TAVUS_PERSONA_ID, and ANTHROPIC_API_KEY in .env.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/andrechuabio/wellness-coach" ~/.claude/skills/openclaw-skills-wellness-coach && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/andrechuabio/wellness-coach" ~/.openclaw/skills/openclaw-skills-wellness-coach && rm -rf "$T"
manifest: skills/andrechuabio/wellness-coach/SKILL.md
source content

Wellness Coach

Spin up a personalized Baymax wellness coach video session from health + calendar data.

What This Skill Does

  1. Reads wearable health data (mock or real: Oura/Fitbit/Apple Health)
  2. Fetches today's Google Calendar events
  3. Calls Claude to generate a Baymax system prompt + wellness recommendations
  4. Creates a live Tavus CVI session (interactive video avatar)
  5. Optionally delivers a Telegram morning briefing with the session link

Project Setup

git clone https://github.com/AndreChuabio/wellness-coach
cd wellness-coach
pip install -r backend/requirements.txt
cp .env.example .env  # fill in API keys

Required API Keys (.env)

ANTHROPIC_API_KEY=       # Claude context generation
TAVUS_API_KEY=           # Tavus CVI sessions
TAVUS_REPLICA_ID=        # Avatar replica (platform.tavus.io → Replicas)
TAVUS_PERSONA_ID=        # Baymax persona (platform.tavus.io → Personas)

Running the Backend

cd backend
uvicorn main:app --reload
# Swagger UI: http://localhost:8000/docs

Running the Frontend

cd frontend
python3 -m http.server 3000
# Open: http://localhost:3000

Key Endpoints

MethodPathWhat it does
GET
/health-data
Today's wearable metrics
GET
/calendar
Today's calendar events
POST
/start-session
Full pipeline → Tavus CVI URL + recs
GET
/debug-env
Check all API keys are loaded

Morning Briefing Pipeline (Telegram)

Run both scripts back-to-back — always together so the Tavus link is fresh:

python3 cron/morning_context.py && python3 cron/send_briefing.py

This builds context, pre-warms a Tavus session, and sends a Telegram message with:

  • Sleep score, HRV, recovery score
  • Today's calendar summary
  • Top wellness recommendation
  • Live Tavus session link (valid ~10 min after creation)

Automated Daily Cron (OpenClaw)

Register a 7AM daily cron via OpenClaw to automate the morning briefing. See

references/openclaw-cron.md
for the exact setup.

Connecting Real Wearable Data

See

references/wearables.md
for Oura, Fitbit, and Apple Health integration guides.

Google Calendar Integration

See

references/gcal-setup.md
for OAuth setup to get real calendar events.

Wellness Recommendations Logic

Recommendations are generated in

backend/context_builder.py
based on:

SignalTriggerSuggestion
HRV < 50msbelow avgBox breathing, recovery day
Sleep score < 75poor sleepNap window, caffeine cutoff
High-stakes meetingkeyword match4-7-8 breathing beforehand
4+ meetingspacked dayMicro-meditations between meetings
Recovery ≥ 80 + HRV ≥ avggreat dayPush harder, workout, cold exposure

Knowledge Base (Tavus Persona)

Upload wellness content directly to the Tavus Persona via:

platform.tavus.io → Personas → Your Persona → Knowledge Base → Add Files

Format files as structured scripts:

# [Exercise Name]
## When to use
## Script (word-for-word guide)
## Duration

Tavus Persona Settings

  • LLM: tavus-gpt-oss (or custom Claude endpoint)
  • STT: tavus-advanced
  • TTS: Tavus Default
  • Hotwords: HRV, Baymax, meditation, breathing, recovery
  • Turn detection: Sparrow-1 (user mutes mic to trigger response)

Common Issues

Avatar nods but doesn't speak → Mic permission not granted. Click lock icon in browser → allow microphone → rejoin.

Mock mode despite keys set

.env
not loading. Run
/debug-env
to verify. Ensure
.env
is in project root, not
backend/
.

Tavus link expired → Sessions last ~10 min. Always run

morning_context.py
and
send_briefing.py
together right before use.

GCal shows mock data → Set

GOOGLE_CREDENTIALS_PATH
and
GOOGLE_TOKEN_PATH
in
.env
. Run
python3 setup_gcal.py
once to authorize.