bestyou-coach

Render BestYou health data as visual Dark Glass dashboards via OpenClaw canvas. Daily briefings, action plans, progress snapshots, weekly summaries, meal analysis, and workout plans. Companion to the bestyou core skill.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "bestyou-coach" with this command: npx skills add kentsteffen/bestyou-coach

BestYou Coach Widgets

Render BestYou MCP tool responses as rich visual cards using OpenClaw's canvas.

First-Time Setup

Before calling any tools, check that mcporter is installed and the BestYou server is configured:

mcporter --config ~/.openclaw/workspace/config/mcporter.json list
  • If mcporter is not found: npm install -g mcporter
  • If bestyou is not listed: walk the user through setup. See references/setup.md for the full guide.

Setup summary:

  1. User generates an API key in BestYou iOS (More → Connected Apps → OpenClaw)
  2. Create config/mcporter.json with the key in the Authorization Bearer header (see references/setup.md for the exact JSON format)
  3. Restart the OpenClaw gateway

Calling Tools via mcporter

All tools use this syntax:

mcporter --config config/mcporter.json call bestyou.<tool_name> [param=value ...]

If a custom config path is needed (e.g. calling from outside the workspace), use the full path:

mcporter --config ~/.openclaw/workspace/config/mcporter.json call bestyou.<tool_name> [param=value ...]

Examples:

mcporter call bestyou.get_account_link_status
mcporter call bestyou.get_daily_briefing date=2026-03-15
mcporter call bestyou.get_todays_action_plan date=2026-03-15
mcporter call bestyou.get_progress_snapshot date=2026-03-15
mcporter call bestyou.get_weekly_summary weekEndDate=2026-03-15
mcporter call bestyou.generate_workout type=strength duration=20 equipment=bodyweight experienceLevel=Intermediate goal="General strength"
mcporter call bestyou.analyze_meal_text description="chicken burrito bowl" timestamp=2026-03-15T12:30:00-06:00

If a custom mcporter config path is needed, add --config <path>.

Tool-to-Template Map

MCP ToolTemplateDescription
get_account_link_statusassets/account-status.htmlConnection status, scopes
get_daily_briefingassets/daily-briefing.htmlReadiness, insights, priorities
get_todays_action_planassets/action-plan.htmlTimeline of today's blocks
get_progress_snapshotassets/progress-snapshot.htmlDomain scores, recommendations
get_weekly_summaryassets/weekly-summary.htmlWeekly scores, trends, goals
analyze_meal_textassets/meal-analysis.htmlMacro breakdown, components
generate_workoutassets/workout.htmlExercise cards with images

Rendering Workflow

  1. Call the BestYou MCP tool via mcporter
  2. Read the matching template from assets/
  3. Replace the sample data in the HTML with the actual API response values (see data mapping below)
  4. Inline the CSS: copy the contents of assets/shared.css into a <style> tag in the HTML <head> so the output is self-contained
  5. Present the populated HTML via canvas(action="present") or canvas(action="a2ui_push")
  6. Provide a brief text summary alongside the visual

Design System

All templates use the BestYou Dark Glass design system (assets/shared.css):

  • Background: #0a0a0a, cards: #141414, borders: #1e1e1e
  • Font: Inter (Google Fonts)
  • Color coding: green (#4ade80) = good, yellow (#facc15) = moderate, orange (#fb923c) = warning, red (#f87171) = poor
  • Score thresholds: ≥70 green, 40-69 yellow/orange, <40 red

Handling Missing Data

API responses may contain null or missing fields. Rules:

  • If a score field is null, hide the gauge/bar or show "—" instead of a number
  • If an array is empty or missing, omit that section entirely (don't render empty containers)
  • If totalCalories or calorieGoal is null, omit the calorie summary row
  • Never show "null" or "undefined" in rendered HTML

Data Mapping by Template

Daily Briefing

API response structure (nested):

API PathTemplate ElementNotes
headline.headline text
readinessScore.gauge-value + SVG stroke-dashoffsetFormula: 314 - (314 * score / 100)
dayType.day-type .valueCapitalize, add emoji: recovery=🔄, active=💪, rest=😴
yesterday.highlights[].insight-card blocksPositive insights (icon, title, description)
yesterday.areas[].insight-card blocksNegative/improvement insights, render after highlights
today.priorities[].action-item blocksNumbered, with title and description
today.plans[].plan-tag blocksEmoji, plan name, week/day info
insightCards[]Cross-domain sectionFilter for domain: "multi" entries, render as cross-domain insight cards

Action Plan

API PathTemplate ElementNotes
readiness.score.readiness-score + badge
readiness.dayType.rm-type
blocks[].block-card itemsGroup by timePeriod: morning/afternoon/evening

Block icon mapping by blockType:

  • wakeUp → 😴 (recovery icon bg)
  • breakfast → 🍳 (nutrition icon bg)
  • lunch → 🥗 (nutrition icon bg)
  • snack → 🥤 (nutrition icon bg, or 🥑 for second snack)
  • dinner → 🍽️ (nutrition icon bg)
  • workout / cardio / strength → 🏃 (fitness icon bg)
  • goToBed → 🌙 (recovery icon bg)

Block status: completed → ✅, upcoming or pending → ⬜

Progress Snapshot

API PathTemplate ElementNotes
domains[].domain-card gridEach: name, score, color-coded mini bar
insights[].insight-item cardsWith severity badge (high=red, medium=orange, low=blue)
recommendations[].rec-item cardsWith actionSteps[] as list items
crossDomainPatterns[].cross-domain cardsWith domain badges

Weekly Summary

API PathTemplate ElementNotes
overallScoreGauge SVG + label
domains[].domain-section blocksEach: trend badge (improving/declining/stable), stats, insight
achievements[].achievement cardsEmoji + title + description
nextWeekFocus[].next-week-goal itemsWith priority badge

Meal Analysis

API PathTemplate ElementNotes
mealName.meal-name
calories.meal-cal
protein_g, fat_g, carbs_g, fiber_gMacro bar segments + legendFlex ratios = gram values
components[].component rowsName, amount, calories, per-component macros
insights[].insight-row items.positive or .negative indicator bar
dailyTotals.daily-totals sectionCalories, protein, fat, carbs

Workout

API PathTemplate ElementNotes
sessionNameHeader h1
duration, equipment, levelHeader .meta spans
blocks[].block sectionsPhase badge: warmup=green, main=orange, cooldown=blue

Each exercise within a block:

  • imageUrl<img> src (CDN: cdn.bestyou.ai)
  • nameh3
  • sets, reps, weight, rpe, rest.rx-pill spans
  • notes.exercise-notes
  • targetMuscle, exerciseType.exercise-cues

Conversation Patterns

Morning check-in

User: "What's my day look like?" or "Morning briefing"

  1. get_account_link_status → verify connected
  2. get_daily_briefing → render briefing widget
  3. get_todays_action_plan → render action plan widget
  4. Summarize: readiness score, day type, top priority

Progress check

User: "How am I doing?" or "Show my progress"

  1. get_progress_snapshot → render snapshot widget
  2. Highlight strongest and weakest domains, top recommendation

Meal logging

User: "I just had [food description]"

  1. analyze_meal_text with the description → render meal widget
  2. Note protein hit vs target, suggest next meal bias

Workout request

User: "Give me a workout" or "[duration] [type] workout"

  1. generate_workout with parameters → render workout widget
  2. Brief summary: duration, focus, number of exercises

Weekly review

User: "Weekly summary" or "How was my week?"

  1. get_weekly_summary → render weekly widget
  2. Highlight trends (improving/declining), top achievement, next week focus

Text Summary Style

Keep text summaries alongside widgets brief and actionable:

  • Lead with the key number (readiness score, calories, overall score)
  • One sentence on what's going well
  • One sentence on the top action item
  • No need to repeat everything the widget shows visually

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Huo15 Openclaw Enhance

火一五·克劳德·龙虾增强插件 v5.7.8 — 全面适配 openclaw 2026.4.24:peerDep ^4.24 + build/compat 同步到 4.24 + 14 处 api.on 全部去掉 as any 改成 typed hook(hookName 联合类型 + handler 自动推断 Pl...

Registry SourceRecently Updated
General

Content Trend Analyzer

Aggregates and analyzes content trends across platforms to identify hot topics, user intent, content gaps, and generates data-driven article outlines.

Registry SourceRecently Updated
General

Prompt Debugger

Debug prompts that produce unexpected AI outputs — diagnose failure modes, identify ambiguity and conflicting instructions, test variations, compare model re...

Registry SourceRecently Updated
General

Indie Maker News

独行者 Daily - 变现雷达。读对一条新闻,少走一年弯路。每天5分钟,给创业者装上商业雷达。聚焦一人公司、副业、创业变现资讯,智能分类,行动导向。用户下载即能用,无需本地部署!

Registry SourceRecently Updated