Baby Tracker
/install baby-tracker
Baby Tracker
Use this skill to maintain a private append-only baby log in CSV form and answer natural-language tracking/query/chart requests.
Storage
Default data directory:
~/.openclaw/workspace/data/baby-tracker
Override it for any command with either:
export BABY_TRACKER_DIR=/path/to/baby-tracker-data
python3 scripts/baby_tracker.py --data-dir /path/to/baby-tracker-data ...
Files:
events.csv— append-only flexible event log.metadata.json— baby metadata (name,date_of_birth,sex, timezone, extra fields).weight_percentiles_approx.csv— approximate visual guide percentile data generated by the script.who/who_weight_lms.csv— optional official WHO LMS/z-score data for precise weight-for-age charts.charts/*.htmlandcharts/*.png— generated chart outputs.
Never delete or rewrite events.csv unless explicitly asked. Append corrections as a new correction event or ask before destructive cleanup.
Script
Run commands from this skill directory, or use the absolute path to the installed skill:
python3 scripts/baby_tracker.py ...
The scripts use only Python stdlib.
Initialize or update metadata
Set these before age-aware charts or percentiles:
python3 scripts/baby_tracker.py meta --name "Baby" --date-of-birth YYYY-MM-DD --sex female --timezone Europe/London
--field key=value can store arbitrary metadata such as birth_weight_kg=3.4, height_cm=52, notes=....
Log an event
General pattern:
python3 scripts/baby_tracker.py log \
--type diaper \
--subtype both \
--field pee=large \
--field poo=small \
--notes "optional note" \
--source-text "original message" \
--at "2026-05-03 10:14"
Omit --at to use current time in the baby's configured timezone. Preserve the original user message in --source-text when helpful.
Preferred event shapes:
- Diaper:
--type diaper --subtype wet|dirty|both|dry --field pee=small|medium|large --field poo=small|medium|large|... - Weight:
--type growth --subtype weight --metric weight --value 4.53 --unit kg - Height/length:
--type growth --subtype height --metric height --value 55 --unit cm - Temperature:
--type temperature --metric temperature --value 38.2 --unit C --field method=ear - Feed bottle:
--type feed --subtype bottle --metric volume --value 50 --unit ml --field milk=breast|formula - Feed breast:
--type feed --subtype breast --field side=left|right|both --field duration_min=20 - Sleep:
--type sleep --metric duration --value 90 --unit minplus optional start/end in fields. - Medication:
--type medication --subtype calpol --metric dose --value 2.5 --unit ml. - Anything new: choose a clear
--type, optional--subtype, and structured--field key=valuedetails. The schema is intentionally extensible.
If a message is ambiguous but low risk, log the raw information with notes/source_text rather than blocking. Ask only when the missing detail changes the meaning materially, such as unknown units or ambiguous baby identity in a multi-baby setup.
Query
Examples:
python3 scripts/baby_tracker.py query --type diaper --since today
python3 scripts/baby_tracker.py query --metric weight --format json
python3 scripts/baby_tracker.py query --since 7d --format summary
Use summaries for chat replies. Use JSON/CSV when doing analysis.
Chart
For quick generic charts, generate a self-contained HTML/SVG chart:
python3 scripts/baby_tracker.py chart --metric weight
For WHO weight-for-age percentile claims, prefer the official WHO LMS PNG renderer:
python3 scripts/render_weight_png.py
It expects official WHO weight-for-age LMS/z-score data at:
$BABY_TRACKER_DIR/who/who_weight_lms.csv
# or, by default:
~/.openclaw/workspace/data/baby-tracker/who/who_weight_lms.csv
If the WHO LMS CSV needs rebuilding from downloaded WHO Excel files, place those files in the who/ data directory and run:
python3 scripts/build_who_weight_lms.py
To send a chart image in chat, run the PNG renderer and attach the generated charts/weight-latest.png or the path printed by the script.
Natural-language handling
When a terse baby log message arrives:
- Interpret the event type and details.
- Append it immediately with the script.
- Reply briefly with what was logged and the timestamp.
Examples:
- “nappy both pee large poo small” → log diaper/both with fields.
- “weight 4.53kg” → log growth/weight.
- “temp 38.2 ear” → log temperature with method.
- “50ml bottle breast milk at 10:20” → log feed/bottle volume.
For queries, run query, inspect the result, and answer naturally. For chart requests, run the appropriate chart command and return the output file when requested.
Huckleberry CSV imports
When given a Huckleberry CSV, import it conservatively with the idempotent importer:
python3 scripts/import_huckleberry.py /path/to/Huckleberry.csv
Use --dry-run first for unusual files. The importer:
- Maps
Type=GrowthwithStart Conditionlike4.53kgtogrowth/weight. - Maps
Type=Diaperand notes likeBoth, pee:large poo:smallto diaper events. - Maps
Type=Feedrows to breast/bottle feed events, preserving duration, side, location, milk, and volume fields where possible. - Maps
Sleep,Pump, and custom activity rows to extensible event types. - Keeps original row text in
source_textand structured Huckleberry columns indetails_jsonfor auditability. - Uses deterministic import event IDs, so rerunning the same CSV skips already-imported rows.
- Does not overwrite existing manually logged events unless asked for deduplication.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install baby-tracker - After installation, invoke the skill by name or use
/baby-tracker - Provide required inputs per the skill's parameter spec and get structured output
What is Baby Tracker?
Log, query, import, and chart baby care events as a private CSV-based replacement for baby tracking apps such as Huckleberry. Use when recording or analyzing... It is an AI Agent Skill for Claude Code / OpenClaw, with 104 downloads so far.
How do I install Baby Tracker?
Run "/install baby-tracker" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Baby Tracker free?
Yes, Baby Tracker is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Baby Tracker support?
Baby Tracker is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Baby Tracker?
It is built and maintained by Martin Zokov (@martinzokov); the current version is v0.1.0.