Loading…
Calories Goal: {{ settings.kcal_goal }} kcal
{{ Math.round(summary?.intake?.totals?.kcal ?? 0) }} kcal

{{ weekText('kcal') }}{{ weekText('protein') ? ' · ' + weekText('protein') : '' }}

Protein {{ Math.round(summary?.intake?.totals?.protein ?? 0) }}g / {{ settings.protein_goal }}g
Carbs {{ Math.round(summary?.intake?.totals?.carbs ?? 0) }}g
Fat {{ Math.round(summary?.intake?.totals?.fat ?? 0) }}g

{{ extraNutrientsText(summary?.intake?.totals) }}

Alcohol Limit: {{ alcoholWeek()?.week_drinks }} a week, {{ alcoholWeek()?.day_drinks }} a day
{{ alcoholWeek()?.week }} standard drinks in 7 days

{{ alcoholOverText() }}

{{ selectedDate === todayIso() ? 'Today' : 'That day' }} {{ alcoholWeek()?.day }} of {{ alcoholWeek()?.day_drinks }} · heaviest day {{ alcoholWeek()?.max }} · a standard drink is {{ alcoholWeek()?.drink_g }} g of alcohol

Exercise {{ formatDurationHm(summary?.exercise?.total_min) }} {{ Math.round(summary?.exercise?.total_kcal ?? 0) }} kcal · {{ summary?.exercise?.count ?? 0 }} {{ summary?.exercise?.count === 1 ? 'session' : 'sessions' }} {{ strengthText() }} {{ cardioText() }}
Sleep {{ sleepSummaryText() }} {{ sleepStagesText() }} {{ weekText('sleep_min') }}
Steps {{ summary?.steps ? Math.round(summary.steps.value) : '—' }} {{ stepsSourcesText() }} {{ weekText('steps') }}

Log food, drink, or supplement

Log exercise

Log sleep

Log metric or biomarker

Day log

Nothing logged for {{ selectedDate }} yet.

Intake

{{ item.name }}{{ formatMealType(item.meal_type) ? ' (' + formatMealType(item.meal_type) + ')' : '' }} {{ shortTime(item.time) }}

{{ intakeMetaText(item) }}

Exercise

{{ ex.activity }} ({{ ex.duration_min }} min) {{ shortTime(ex.start) }}

{{ ex.kcal ? ex.kcal + ' kcal' : '' }}{{ ex.distance_m ? ' · ' + ex.distance_m + ' m' : '' }}{{ ex.avg_hr ? ' · ' + ex.avg_hr + ' bpm' : '' }}{{ ex.notes ? ' · ' + ex.notes : '' }}

Sleep

{{ sl.nap ? 'Nap · ' : '' }}{{ formatDurationHm(sl.duration_min) }} ({{ shortTime(sl.start) }} → {{ shortTime(sl.end) }})

{{ sl.deep_min ? 'Deep ' + sl.deep_min + 'm ' : '' }}{{ sl.rem_min ? 'REM ' + sl.rem_min + 'm ' : '' }}{{ sl.score ? 'Score ' + sl.score : '' }}

Metrics

{{ formatMetricType(m.type) }}: {{ m.value }} {{ m.unit }}

{{ formatSource(m.source) }}

Food

Trends

{{ trendCaption }}

Latest metrics and biomarkers

No metrics recorded yet.

{{ formatMetricType(m.type) }} {{ m.value }} {{ m.unit }} {{ m.time.slice(0, 10) }}

History

No records in range.

{{ day.date }}

{{ dayTotalsText(day) }}

{{ item.name }}{{ formatMealType(item.meal_type) ? ' (' + formatMealType(item.meal_type) + ')' : '' }} {{ shortTime(item.time) }}

{{ intakeMetaText(item) }}

{{ ex.activity }} ({{ ex.duration_min }} min) {{ shortTime(ex.start) }}

{{ ex.kcal ? ex.kcal + ' kcal' : '' }}{{ ex.distance_m ? ' · ' + ex.distance_m + ' m' : '' }}{{ ex.avg_hr ? ' · ' + ex.avg_hr + ' bpm' : '' }}{{ ex.notes ? ' · ' + ex.notes : '' }}

{{ sl.nap ? 'Nap' : 'Sleep' }} · {{ formatDurationHm(sl.duration_min) }} {{ shortTime(sl.start) }} → {{ shortTime(sl.end) }}

{{ sl.deep_min ? 'Deep ' + sl.deep_min + 'm ' : '' }}{{ sl.rem_min ? 'REM ' + sl.rem_min + 'm ' : '' }}{{ sl.score ? 'Score ' + sl.score : '' }}

{{ formatMetricType(m.type) }}: {{ m.value }} {{ m.unit }}

{{ formatSource(m.source) }}

Settings

Account

Signed in as {{ userEmail || userUid }}

Units and goals

Cardio counts heart-rate minutes at 64% of max heart rate or more; minutes at 77% or more count double. Food search ranks catalog results from this region first.

{{ savedMsg }}

MCP connector

{{ googleLoginEnabled ? 'Add this URL to Claude, ChatGPT, or any MCP client; it asks you to sign in with Google.' : 'Paste this URL into Claude, ChatGPT, or any MCP client on mobile or desktop.' }}

API key for devices and scripts

For clients that can't sign in: send Authorization: Bearer with the key, or add ?key= to the MCP URL. It grants full access to your data.

Data and backups

{{ importMsg }}
How to export your data
  • Health Connect (Android): Settings → Health Connect → Manage data → Backup and restore → Scheduled export. Choose daily and a cloud drive; it saves "Health Connect.zip" there. There's no manual trigger, so the first file arrives after the first scheduled run. Import that zip here.
  • Apple Health (iPhone): Health app → your profile picture → Export All Health Data. Save export.zip, then import it here.
  • Google Health app: Profile icon → Your data in Google Health → Export your data, and choose a zip file. It arrives in Google Drive as takeout-….zip; import that zip here. This is the only way to bring in Google Health and Fitbit history. Food logs are skipped because the export leaves out their calories, and data Google Health got from Health Connect comes from the Health Connect export instead.

Fitbit, Mi Band and most Android wearables write to Health Connect.

Couldn't load your account.