NutriScope

Diary
Settings
Units
Metric (g / ml) Imperial (oz / fl oz)

Goals are always entered in grams/ml; displayed amounts convert automatically.

Body weight (for auto-calculating activity calories)
kg

Used only to estimate calories burned on the Activity tab (MET × weight × time). Nothing is shared or synced.

Appearance
Light Dark
Display options
Show Glycemic Load
Show Fullness Score
Notifications
Goal reached celebrations
Hydration goal reached
Cheat day confirmation
Meal logging reminders
Weekly summary

The first three show up as in-app banners right now, triggered by what you've actually logged. Meal reminders and the weekly summary are preferences only in this prototype — a phone app version would need OS-level scheduling to send those while the app is closed.

Apple Health

Important limitation: a web page can't automatically read steps, workouts, or rings from Apple Health — that requires HealthKit, which only works inside a real, compiled iOS app that you've granted permission to. There's no way around that from a browser or PWA, including this one. The button below just opens the Health app itself, using an unofficial link Apple hasn't documented or guaranteed — it works on many iPhones today but could stop working in a future iOS update, and nothing is transferred automatically either way.

HealthKit permissions (documented for a future native build)
Read: StepsRead
Read: Active Energy BurnedRead
Read: WorkoutsRead
Read: Distance Walking/RunningRead
Write: Dietary Energy, Protein, Carbs, FatWrite
Write: WaterWrite

These toggles are a spec, not a live control — there's nothing behind them to switch on here. They show exactly what a native build would ask permission for.

Automatic sync Not enabled

If you're using this inside Claude — same conversation, iPhone and computer, same account — your data already syncs automatically with no setup. This section is for the standalone downloaded version, where there's no server behind it by default. It needs one real ingredient I can't provide myself: a place on the internet to store the shared copy. A free Firebase Realtime Database takes about 5 minutes to set up (firebase.google.com → Create project → Build → Realtime Database → Create database → copy the URL shown at the top). Paste that URL below on both devices, and from then on it syncs by itself — no export, no import, no buttons to remember.

The passphrase just keeps your data at its own private address inside the database — it isn't encryption. For real privacy, also set Firebase's security rules to require it (the field below explains where).

While enabled: your data pushes to the cloud automatically a couple seconds after any change, and pulls down automatically every ~20 seconds and whenever you reopen the tab. If both devices happen to change something in the same few seconds, the most recent push wins — same tradeoff most simple sync tools make.

Account Not signed in

The passphrase above is a shared secret — anyone who knows it sees the same data. Signing in replaces that with an actual individual account: your data is stored under your own private ID instead, so it can't mix with anyone else's even if they guess your passphrase. This uses the same free Firebase project as above — turn on Email/Password under Build → Authentication → Sign-in method, then copy your Web API Key from Project Settings → General.

Sign in with the same email and password on your other device to reach the same account. Signing out just forgets the login on this device — your synced data stays put, ready for you to sign back in.

Manual export / import (no setup required)

Prefer not to set up Firebase? This does the same job by hand: export on one device, import on the other, whenever you want to transfer a snapshot.

Import on another device

Importing merges in every food diary entry, hydration log, activity log, custom food, recipe, and goal from the file — it won't delete anything already on this device.

Reset

Clears every food diary entry, hydration log, custom food, goal, and setting stored in this browser. This can't be undone.

🔎Pick a food from the list below — or search above — to see its full breakdown here.

Best Choices

+ Add your own food
+ Advanced nutrition (optional)

Fullness Score is an estimate based on protein, fiber, and fat density (foods higher in protein/fiber and lower in fat per calorie tend to be more satiating). Glycemic Load = (Glycemic Index × net carbs) ÷ 100. Both are guides for comparison, not medical or clinical measurements.

Daily Food Diary

Pauses "over goal" warnings for this date
Edit daily goals
FoodCalProteinCarbsFat
Daily Total 0 0 g 0 g 0 g

Totals reflect everything logged for the selected date. Switch the date to view or build a diary for any day — each day is saved separately.

Total Glycemic Load
0
Avg Fullness Score
/100

Hydration

Edit hydration goal
Glass · 240ml Mug · 350ml Bottle · 500ml Large bottle · 1000ml

Hydration score weighs water and herbal tea fully; caffeinated tea counts at 90% toward your daily total, reflecting its mild diuretic effect. This is a general estimate, not individual medical guidance.

Weekly Overview

Protein cal Carb cal Fat cal Glycemic Load (line) Hydration Score (dashed line)

Shows the 7 days ending on the diary date above. Bars split each day's calories by macro; the line tracks total Glycemic Load.

Activity

Same date as Diary

Calories fill in automatically from activity type, minutes, and your body weight (set in Settings) — edit the number yourself any time.

Day Week Month
Total burned 0

Calories burned get added back to today's budget (Goal + Exercise − Food = Remaining) — check the calorie ring on the Diary tab.

My Recipes

Saved recipes show up as their own food — search for the recipe name on the Foods tab or pick it from the meal dropdown in the Daily Food Diary.

Create a Recipe

+ Add an ingredient not in the list
+ Advanced nutrition (optional)

Glycemic Load, not Glycemic Index, is tracked for the combined recipe — GI applies to a single food, while GL scales correctly when foods are combined and multiplied by servings.