Memory

Health Mate

Try it

Executable OpenClaw health-report skill with Chinese, English, and Japanese report flows. It reads Markdown logs only from an explicitly configured MEMORY_DI...

What it does

Health-Mate is an executable OpenClaw skill, not a prompt-only package.

The skill document

Health-Mate

Health-Mate is an executable OpenClaw skill, not a prompt-only package.

It reads structured Markdown logs from MEMORY_DIR, generates localized PDF reports, and can optionally deliver the final message to external services.

What It Does

  • Parses meals, hydration, exercise, symptoms, medication, and custom monitoring sections
  • Generates daily reports with scoring, detail sections, AI insight, risk alerts, and next-day actions
  • Generates weekly reports with rings, paired trend charts, audience-specific insight modules, weekly review, and next-week plan
  • Generates monthly reports with radar, branch-aware heatmaps, 30-day weight and BMR trend, specialty charts, follow-up reminders, and clinic suggestions
  • Supports explicit report routing through report_preferences.population_branch, while the setup wizard still auto-suggests lifestyle vs disease mode from the primary goal
  • Switches balanced / fat_loss reports into a lifestyle-review path with activity heatmaps, energy-balance, habit-progression, and lean-mass/fat-mass charts while skipping hospital lookup
  • Supports multi-condition management in both LLM and local fallback paths
  • Keeps core parsing, scoring, and PDF rendering local

Installation

pip install -r requirements.txt

Dependencies:

  • reportlab
  • pillow
  • matplotlib

Required Runtime Setup

Required:

  • MEMORY_DIR

Optional:

  • NVM_DIR
  • CRON_PATH
  • OPENCLAW_BIN
  • TAVILY_API_KEY
  • DINGTALK_WEBHOOK
  • FEISHU_WEBHOOK
  • TELEGRAM_BOT_TOKEN
  • TELEGRAM_CHAT_ID
  • LOG_FILE
  • REPORT_WEB_DIR
  • REPORT_BASE_URL
  • ALLOW_RUNTIME_FONT_DOWNLOAD

For ClawHub manual folder upload:

  • config/.env.example may be missing from the uploaded package
  • use the top-level env block inside config/user_config.example.json as the upload-safe reference template
  • the setup wizard can create a commented project-local config/.env template if the file does not already exist
  • runtime scripts still read project-local config/.env
  • keep only the keys you intend this skill to read inside project-local config/.env

Upgrade And Backup Notice

Before upgrading or reinstalling this skill, back up:

  • config/user_config.json
  • config/.env
  • any local font file you manually placed under assets/

Important:

  • some platform upgrade or reinstall flows may overwrite, reset, or remove local configuration files
  • after an upgrade, re-check MEMORY_DIR, report preferences, scoring modules, webhook settings, and Tavily settings before running scheduled jobs again
  • if needed, also verify report_preferences.population_branch in config/user_config.json

Local And Network Behavior

Expected local file I/O:

  • reads Markdown logs from MEMORY_DIR
  • reads project-local config/.env when shell runners are used and the file exists
  • the setup wizard may create a commented project-local config/.env template when the file is missing
  • may rely on config/user_config.example.json as the upload-safe env reference during manual installation
  • writes PDFs into reports/
  • writes logs into logs/
  • may create a temporary English memory mirror for rendering fallback

Expected network I/O:

  • Tavily only when TAVILY_API_KEY is configured
  • webhook delivery only when the matching delivery credentials are configured
  • runtime font download only when ALLOW_RUNTIME_FONT_DOWNLOAD=true

Important:

  • there is no implicit default MEMORY_DIR fallback in the shell runners
  • the skill exits if MEMORY_DIR is missing
  • shell runners use NVM_DIR and CRON_PATH from the environment or project-local config/.env, with built-in defaults when those keys are missing
  • the Python local-LLM resolver uses OPENCLAW_BIN first and then tries common install paths without hardcoding a single fixed cron PATH

Commands

  • /health Daily report

  • /health summary Weekly report

  • /health month Monthly report

Memory Write Protocol

When writing into MEMORY_DIR, the model must act like a strict recorder.

Hard rules:

  1. Never write commentary, advice, summaries, emoji, or chat filler into the file.
  2. Meals, hydration, medication events, and exercise events must use level-3 headings with time markers.
  3. Hydration blocks must remain minimal and structured.
  4. Step totals must stay in one dedicated level-2 block.
  5. Monitoring modules must use stable level-2 headings.
  6. Use one language per block.

Core template:

# 2026-03-20 Health Log

## Meals
### Breakfast (around 08:30)
- Oatmeal 50g -> approx. 190kcal
- Skim milk 250ml -> approx. 87kcal

## Hydration
### Morning (around 09:45)
- Water intake: 300ml
- Cumulative: 300ml/2000ml

## Exercise
### Afternoon Cycling (around 17:17)
- Distance: 10km
- Duration: 47min
- Burn: approx. 300kcal

## Today Steps
- Total steps: 8500 steps

Chinese core template:

# 2026-03-20 健康记录

## 体重记录
- 晨起空腹:64.4kg

## 饮水记录
### 上午(约 08:45)
- 饮水量:300ml
- 累计:300ml/2000ml

## 饮食记录
### 早餐(约 08:50)
- 燕麦片 50g -> 约 190kcal
- 脱脂牛奶 250ml -> 约 87kcal

## 运动记录
### 下午骑行(约 17:10)
- 距离:10.2km
- 耗时:42min
- 消耗:约 290kcal

## 今日步数
- 总步数:8200 步

## 用药记录
- 胆舒胶囊:1 粒

Chinese monitoring-module constraints:

  • ## 血压记录 / ## 血糖记录 / ## 体成分 / ## 生化记录 must stay as stable level-2 titles
  • numeric monitoring blocks should use stable item labels such as - 血压:128/82 mmHg, - 血糖:7.1 mmol/L, - ALT:34 U/L
  • do not mix commentary into monitoring blocks
  • do not turn monitoring blocks into tables
  • do not rename the same monitoring module on different days unless the user intentionally changed the module name

Recommended LLM instruction:

  • paste the English or Chinese template above directly into your system prompt, soul.md, or memory-write policy so the model stays inside the parser-safe structure
  • if custom modules are enabled in user_config.json, add their exact section titles to the LLM write protocol and keep those titles stable across days

Expandable monitoring modules:

## Blood Pressure
### Morning (around 08:00)
- Blood Pressure: 128/82 mmHg
- Heart Rate: 72 bpm

## Glucose Record
### After Breakfast (around 10:10)
- Glucose: 7.1 mmol/L
- Timing: 2h after breakfast

## Body Composition
- Weight: 64.4kg
- Body Fat: 18.6%

## Biochemistry
- ALT: 34 U/L
- AST: 28 U/L

Forbidden content:

  • Assessment
  • Status
  • Summary
  • motivational filler
  • debug notes
  • system logs
  • tables inside daily memory files

Monthly Report Expectations

The monthly report now includes:

  • macro adherence radar
  • healthy-day donut chart based on the full calendar month
  • symptom and medication heatmap
  • 30-day weight and BMR trend
  • condition-specific specialty charts
  • lifestyle-mode specialty charts for balanced / fat_loss: energy balance, four-week habit progression, and lean-mass/fat-mass composition
  • AI monthly review
  • follow-up reminders or periodic screening suggestions, depending on the active monthly mode
  • residence-aware hospital-and-doctor suggestions with grouped recommendations, grades, booking hints, and optional fee / schedule fields for disease-management modes

If the user manages multiple conditions, the monthly report should combine them instead of collapsing to a single narrow perspective.

Font Fallback

Preferred CJK font paths:

  • assets/NotoSansSC-VF.ttf
  • assets/NotoSansJP-VF.ttf

If one of them is missing:

  • the skill may switch to an English-compatible rendering path
  • the output adds a rendering notice
  • users who need Chinese PDF output should place NotoSansSC-VF.ttf into assets/
  • users who need Japanese PDF output should place NotoSansJP-VF.ttf into assets/

Changelog

v1.5.4 - 2026-04-01

  • Enhanced PDF visual styling with refined layout and improved readability
  • Fixed minor formatting issues in daily, weekly, and monthly report generators
  • Optimized symbol rendering for better cross-platform compatibility

v1.5.3 - 2026-03-29

  • Sanitized local-LLM stdout before AI commentary is embedded into push text or PDFs, preventing OpenClaw plugin-registration logs from leaking into reports
  • Added a second daily-PDF commentary filter as a defensive fallback for unexpected plugin log fragments
  • Aligned direct Python execution with the shell runners by auto-loading project-local config/.env when variables are not already exported

v1.5.2 - 2026-03-25

  • Updated the upload-safe env example with OpenClaw default MEMORY_DIR, sanitized web-publish placeholders, and the shared LOG_FILE example
  • Extended init_config.py so first-time setup can create a commented project-local config/.env template without overwriting an existing one
  • Clarified SKILL metadata and runtime notes around project-local .env, cron PATH helpers, and optional-network behavior
  • Verified that the setup wizard really creates the commented config/.env template when the file is missing
  • Added a monthly lifestyle-review split for balanced / fat_loss, including new charts, renamed section titles, screening suggestions, and hospital-lookup bypass

v1.5.1 - 2026-03-24

  • Optimized Cron environment configuration for reliable LLM invocation in scheduled tasks
  • Embedded the upload-safe env reference into config/user_config.example.json
  • Kept daily_health_report_pro.sh, weekly_health_report_pro.sh, and monthly_health_report_pro.sh loading environment variables from .env
  • Changed all shell script comments to English for better internationalization
  • Ensures scheduled daily/weekly/monthly reports can successfully call local LLM for AI insights

v1.5.0 - 2026-03-23

  • Removed the legacy scripts/health_report_pro.py and scripts/pdf_generator.py wrappers
  • Extended init_config.py to cover ja-JP
  • Clarified env-first local LLM resolution through OPENCLAW_BIN and common-path auto-discovery
  • Added explicit Japanese font fallback guidance and English-fallback notice behavior

v1.4.0 - 2026-03-21

  • Added monthly reporting
  • Added weekly and monthly symptom and medication heatmaps
  • Added monthly weight and BMR trend output
  • Added residence-aware monthly medical planning
  • Refreshed README, README_ZH, SKILL metadata, and package metadata

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

More from tankeito

Browse all skills

Personalized workout plans, fitness meals, and recovery tracking driven by your stored profile.

by tankeito16 installs

Collect Linux host and web logs, query metrics, send alerts, and schedule PDF reports with guarded remediation.

by tankeito19 installs1 stars

通过自然语言配置健康档案,主动引导录入体重、饮食、饮水、运动数据,生成专业健康报告并多端推送。

by tankeito26 installs1 stars

Google Docs API integration with managed OAuth via Maton. Create documents, read full text, write/append content, search and replace, apply paragraph styles...

by tankeito23 installs1 stars

Fetch global news from RSS/API sources, auto-generate articles with images, and publish to WordPress or custom CMS platforms

by tankeito14 installs

Connects to IMAP mailboxes using built-in provider routing to filter, normalize, extract data via regex, and push matching emails with precise time window co...

by tankeito16 installs