← All skills
Tencent SkillHub Β· AI

Water Coach

Hydration tracking and coaching skill. Use when user wants to track water intake, get reminders to drink water, log body metrics (weight, body fat, muscle %,...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Hydration tracking and coaching skill. Use when user wants to track water intake, get reminders to drink water, log body metrics (weight, body fat, muscle %,...

⬇ 0 downloads β˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
CHANGELOG.md, SKILL.md, _meta.json, evaluation/AGENT.md, evaluation/agent_eval.json, references/dynamic.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.7.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 20 sections Open source page

First-time Setup

Follow the first setup here references/setup.md

First-time Setup Check

water setup is_setupWhat to dofalseAsk: weight OR desired goal. Also ask: "What times do you want water reminders?" (let user configure their schedule). Then use water set_body_weight 80 or water set_goal 3000. Don't assume hardcoded times!trueSkip setup. Just log water or show status.

❌ Don't Ask

Reminder schedules after first setup (user already configured)

βœ… Do Ask

"How much water did you drink?" Only weight/goal (first time)

CLI Structure

water_coach.py <namespace> <command> [options] Namespaces: water | body | analytics

CSV Format

logged_at,drank_at,date,slot,ml_drank,goal_at_time,message_id ColumnDescriptionlogged_atWhen user told you (NOW)drank_atWhen user actually drank (user can specify past time)dateDerived from drank_atslotmorning/lunch/afternoon/evening/manualml_drankAmount in mlgoal_at_timeGoal at that momentmessage_idAudit trail - link to conversation Key Rules: drank_at is MANDATORY - always required If user doesn't specify drank_at β†’ assume drank_at = logged_at Cumulative is calculated at query time (not stored) Use drank_at to determine which day counts Details at references/log_format.md

Audit Trail

Every water log entry captures: message_id: Links to the conversation message where user requested the log Auto-capture: CLI automatically gets message_id from session transcript Proof: Use water audit <message_id> to get entry + conversation context # Check proof of a water entry water audit msg_123 # Returns: entry data + surrounding messages for context ⚠️ Privacy Notice: The audit feature can read your conversation transcripts, but only when you explicitly run water audit <message_id>. This is off by default (audit_auto_capture: false). # Edit water_config.json and set: "audit_auto_capture": true How it works: Water log always saves the message_id (regardless of this setting) βœ… When you run water audit <message_id>: If false: Shows entry data only (message_id saved, but no context read) If true: Also reads transcript to show conversation context ("User said: I drank 500ml") Why disable it? If you discuss sensitive topics and don't need proof of intake, leave it off.

Daily Commands

# Water water status # Current progress (calculated from drank_at) water log 500 # Log intake (drank_at = now) water log 500 --drank-at=2026-02-18T18:00:00Z # Log with past time water log 500 --drank-at=2026-02-18T18:00:00Z --message-id=msg_123 water dynamic # Check if extra notification needed water threshold # Get expected % for current hour water set_body_weight 80 # Update weight + logs to body_metrics water set_body_weight 80 --update-goal # + update goal water audit <message_id> # Get entry + conversation context # Body body log --weight=80 --height=1.75 --body-fat=18 body latest # Get latest metrics body history 30 # Get history # Analytics analytics week # Weekly briefing (Sunday 8pm) analytics month # Monthly briefing (2nd day 8pm)

Rules (MUST FOLLOW)

ALWAYS use CLI - never calculate manually LLM interprets first - "eu tomei 2 copos" β†’ 500ml β†’ water log 500 Threshold from CLI - run water threshold, don't hardcode GOAL is USER'S CHOICE - weight Γ— 35 is just a DEFAULT suggestion: At setup: Ask weight β†’ suggest goal β†’ CONFIRM with user On weight update: Ask "Want to update your goal to the new suggested amount?" User can set any goal (doctor's orders, preference, etc.)

Config Tree

water-coach/ β”œβ”€β”€ SKILL.md ← You are here β”œβ”€β”€ scripts/ β”‚ β”œβ”€β”€ water_coach.py ← Unified CLI β”‚ └── water.py ← Core functions β”œβ”€β”€ data/ ← DO NOT USE - keep skill code separate from user data └── references/ β”œβ”€β”€ setup.md β”œβ”€β”€ dynamic.md └── log_format.md

⚠️ IMPORTANT: Data Location

User data is stored in the AGENT WORKSPACE, NOT in the skill folder! DataLocationwater_log.csv<agent-workspace>/memory/data/water_log.csvwater_config.json<agent-workspace>/memory/data/water_config.jsonbody_metrics.csv`<agent-workspace>/memory/data/body_metrics.csv Example path: /home/oriel/.openclaw/workspace/memory/data/ Why? Keeps user data separate from skill code β€” makes backups, migrations, and skill updates easier.

Notifications Schedule

TypeWhenCommandUser ConfiguredPer user's schedulewater statusDefault Suggestion9am, 12pm, 3pm, 6pm, 9pmwater statusDynamicEvery ~30 min (heartbeat)water dynamicWeeklySunday 8pmanalytics weekMonthly2nd day 8pmanalytics month

Notification Rules (MUST FOLLOW)

USER CONFIGURES THEIR SCHEDULE β€” Agent should ask user: "What times do you want water reminders?" and respect that NO "no log" skip logic β€” Always send notifications when scheduled, don't skip because user hasn't logged water Notifications STIMULATE logging β€” That's the point! Don't assume user will log on their own

Quick Reference

TaskCommandCheck progresswater_coach.py water statusLog waterwater_coach.py water log 500Need extra?water_coach.py water dynamicBody metricswater_coach.py body log --weight=80Weekly reportwater_coach.py analytics weekMonthly reportwater_coach.py analytics month

Dynamic Scheduling details

β†’ references/dynamic.md

⚠️ Bug Fix (Feb 2026)

The water dynamic command had a bug where the hourly notification counter wouldn't reset when the hour changed. This is now fixed: The script now checks if the current hour differs from last_extra_hour and resets the counter accordingly This ensures notifications work correctly after hour boundaries (e.g., 4PM)

⚠️ Bug Fix (Feb 2026) - Analytics

The analyticsPM β†’ 5 week and analytics month commands had a bug: Was looking for non-existent cumulative_ml column in CSV Fixed to sum ml_drank per day instead

βœ… How to Build Good Weekly/Monthly Reports

Use these functions (don't reinvent): ReportScriptFunctionWeeklywater_coach.py analytics weekanalytics_week() in water_coach.pyMonthlywater_coach.py analytics monthanalytics_month() in water_coach.py These call get_week_stats() and get_month_stats() in water.py. When updating analytics functions, follow these rules: 1. Include ALL days, even with 0ml # In get_week_stats() / get_month_stats() # Include every day in the range, not just days with data for i in range(days): d = (date.today() - timedelta(days=i)).strftime("%Y-%m-%d") ml = by_date.get(d, {}).get("ml", 0) # Default to 0, not skip 2. Calculate true average # Average = total_ml / ALL days (including zeros), not just tracked days avg_ml = total_ml / days # e.g., 15440ml / 7 days = 2205ml/day 3. Show all days in table format | Dia | ML | % | Status | | Sab 22 | 2250ml | 67.7% | ⚠️ | | Seg 17 | 0ml | 0.0% | ❌ | This gives users an accurate picture of their habits!

Tests

python3 -m pytest skills/water-coach/scripts/test/test_water.py -v

Example

User: "eu tomei 2 copos" Agent: (LLM interprets: 2 copos β‰ˆ 500ml) Agent: exec("water_coach.py water log 500") β†’ Python logs to CSV Agent Evaluations β†’ evaluation/AGENT.md

Category context

Agent frameworks, memory systems, reasoning layers, and model-native orchestration.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
4 Docs2 Config
  • SKILL.md Primary doc
  • CHANGELOG.md Docs
  • evaluation/AGENT.md Docs
  • references/dynamic.md Docs
  • _meta.json Config
  • evaluation/agent_eval.json Config