← Back to Skills Marketplace
kentsteffen

BestYou Coach Dashboards

by kentsteffen · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
135
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install bestyou-coach
Description
Render BestYou health data as visual Dark Glass dashboards via OpenClaw canvas. Daily briefings, action plans, progress snapshots, weekly summaries, meal ana...
README (SKILL.md)

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.\x3Ctool_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.\x3Ctool_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 \x3Cpath>.

Tool-to-Template Map

MCP Tool Template Description
get_account_link_status assets/account-status.html Connection status, scopes
get_daily_briefing assets/daily-briefing.html Readiness, insights, priorities
get_todays_action_plan assets/action-plan.html Timeline of today's blocks
get_progress_snapshot assets/progress-snapshot.html Domain scores, recommendations
get_weekly_summary assets/weekly-summary.html Weekly scores, trends, goals
analyze_meal_text assets/meal-analysis.html Macro breakdown, components
generate_workout assets/workout.html Exercise 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 \x3Cstyle> tag in the HTML \x3Chead> 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, \x3C40 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 Path Template Element Notes
headline .headline text
readinessScore .gauge-value + SVG stroke-dashoffset Formula: 314 - (314 * score / 100)
dayType .day-type .value Capitalize, add emoji: recovery=🔄, active=💪, rest=😴
yesterday.highlights[] .insight-card blocks Positive insights (icon, title, description)
yesterday.areas[] .insight-card blocks Negative/improvement insights, render after highlights
today.priorities[] .action-item blocks Numbered, with title and description
today.plans[] .plan-tag blocks Emoji, plan name, week/day info
insightCards[] Cross-domain section Filter for domain: "multi" entries, render as cross-domain insight cards

Action Plan

API Path Template Element Notes
readiness.score .readiness-score + badge
readiness.dayType .rm-type
blocks[] .block-card items Group 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 Path Template Element Notes
domains[] .domain-card grid Each: name, score, color-coded mini bar
insights[] .insight-item cards With severity badge (high=red, medium=orange, low=blue)
recommendations[] .rec-item cards With actionSteps[] as list items
crossDomainPatterns[] .cross-domain cards With domain badges

Weekly Summary

API Path Template Element Notes
overallScore Gauge SVG + label
domains[] .domain-section blocks Each: trend badge (improving/declining/stable), stats, insight
achievements[] .achievement cards Emoji + title + description
nextWeekFocus[] .next-week-goal items With priority badge

Meal Analysis

API Path Template Element Notes
mealName .meal-name
calories .meal-cal
protein_g, fat_g, carbs_g, fiber_g Macro bar segments + legend Flex ratios = gram values
components[] .component rows Name, amount, calories, per-component macros
insights[] .insight-row items .positive or .negative indicator bar
dailyTotals .daily-totals section Calories, protein, fat, carbs

Workout

API Path Template Element Notes
sessionName Header h1
duration, equipment, level Header .meta spans
blocks[] .block sections Phase badge: warmup=green, main=orange, cooldown=blue

Each exercise within a block:

  • imageUrl\x3Cimg> 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
Usage Guidance
What to consider before installing: - The skill legitimately needs BESTYOU_API_KEY and uses mcporter to call the BestYou MCP service (baseUrl: https://mcp.bestyou.ai/mcp). Only provide a key you intend to use with BestYou and grant minimal scopes required. - You will be asked to store the API key in a local config file (~/.openclaw/workspace/config/mcporter.json). That file contains the Bearer token in plaintext; secure the file (restrict permissions) and delete or rotate the key if you stop using the skill. - The skill recommends installing mcporter globally via npm. Verify the mcporter package name, publisher, and version before running `npm install -g`, or prefer a local install (or pinned version) if you have concerns about global packages. - The HTML templates load images from cdn.bestyou.ai and fonts from fonts.googleapis.com — loading templates will cause outbound requests to those CDNs (normal for rendering images/fonts but note this leaks that the client retrieved those assets). - Review references/setup.md and references/security.md included in the package for any additional security recommendations the skill provides. - If you have doubts, test in an isolated environment or use a dedicated OpenClaw workspace account/key so you can revoke or rotate the key without impacting other integrations.
Capability Analysis
Type: OpenClaw Skill Name: bestyou-coach Version: 1.0.0 The bestyou-coach skill is a legitimate integration for rendering health data dashboards within OpenClaw. It utilizes the mcporter CLI to interface with a specific MCP server (mcp.bestyou.ai) and renders the resulting data using local HTML templates (assets/) and safe DOM manipulation (textContent). The instructions in SKILL.md and references/setup.md are consistent with the stated purpose of providing health briefings and workout plans, and the security documentation correctly identifies and mitigates common risks like XSS and unauthorized data persistence.
Capability Assessment
Purpose & Capability
Name/description, required env var (BESTYOU_API_KEY), and instructions all align: the skill fetches BestYou data via an MCP server and renders local HTML templates. One small mismatch: registry metadata lists no required config paths, but SKILL.md and INSTALL.md explicitly instruct the user to create and use ~/.openclaw/workspace/config/mcporter.json (the mcporter config). This is expected for operation but is not reflected in the declared metadata.
Instruction Scope
SKILL.md confines runtime actions to: verifying/installing mcporter, creating a mcporter config that contains the BESTYOU API key, calling bestyou.* tools via mcporter, populating local HTML templates from assets/, inlining CSS, and presenting via canvas. The instructions do not ask the agent to read unrelated system files or other credentials. The agent will cause network requests to the BestYou MCP endpoint when mcporter calls are made.
Install Mechanism
This is an instruction-only skill (no install spec). It tells the user to install mcporter via `npm install -g mcporter`. That is a normal but higher-risk recommendation than using an audited system package because global npm installs run code from the npm registry — users should verify the package and version before installing.
Credentials
Only one credential (BESTYOU_API_KEY) is required and is the declared primary credential, which is proportionate for a skill that calls the BestYou MCP API. The docs instruct storing the key in a local mcporter.json Authorization Bearer header — convenient but means the key will be present in plaintext on disk at the specified path, so users should ensure appropriate filesystem permissions and scope.
Persistence & Privilege
always:false and user-invocable:true (default). The skill does not request permanent or elevated platform privileges and does not attempt to modify other skills or system-wide settings beyond recommending a gateway restart.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bestyou-coach
  3. After installation, invoke the skill by name or use /bestyou-coach
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
BestYou Coach 1.0.0 - Initial release of BestYou Coach for OpenClaw canvas. - Renders health data as visual dashboards: daily briefings, action plans, progress snapshots, weekly summaries, meal analysis, and workout plans. - Provides setup guidance for `mcporter` and API key configuration. - Includes data-to-template mapping and design system details for consistent rendering. - Outlines handling for missing or null API response fields. - Describes conversation patterns for typical user requests.
Metadata
Slug bestyou-coach
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is BestYou Coach Dashboards?

Render BestYou health data as visual Dark Glass dashboards via OpenClaw canvas. Daily briefings, action plans, progress snapshots, weekly summaries, meal ana... It is an AI Agent Skill for Claude Code / OpenClaw, with 135 downloads so far.

How do I install BestYou Coach Dashboards?

Run "/install bestyou-coach" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is BestYou Coach Dashboards free?

Yes, BestYou Coach Dashboards is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does BestYou Coach Dashboards support?

BestYou Coach Dashboards is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created BestYou Coach Dashboards?

It is built and maintained by kentsteffen (@kentsteffen); the current version is v1.0.0.

💬 Comments