Umai logo

Eat. Photograph.
That is the whole workflow.

Umai is a self-hosted nutrition coach that lives in your Telegram chat. It reads your plate, does the arithmetic in code, and tells you at the end of the day whether you are on track.

Try Now! →

What you do, what it keeps

One chat, eight jobs

Everything happens in the same conversation. There is no app to open and no dashboard you have to remember to visit. Eight things you can do, and six things Umai quietly keeps track of while you do them.

Umai your Telegram chat 📷 Log a meal a photo, or plain words 💧 Log water one tap, 250 ml ⚖️ Weigh in one number a day 📚 Re-log a favourite from your food library 📝 Save a recipe weighed once, reused ✏️ Fix a mistake the grams or the item 📊 Review today · week · trend 🔒 Own your data export it, or delete all of it
Buttons cover the frequent paths, so the things you do every day never cost a model call, or a wait.

What it keeps track of

everything that moves the number, and nothing that does not
🔥

Calories & macros

Protein, carbs and fat per item, per meal, per day, computed from a real food table rather than invented by a model.

⚖️

Weight trend

One weigh-in a day, smoothed into a trend line so a salty dinner does not read as failure.

💧

Water

A 250 ml button and a target that follows your body weight, with a nudge when the day is running dry.

👟

Steps

Synced from your phone and shown beside the target, because activity never quietly buys calories back.

🎯

A target that fits you

Umai learns how much you tend to under-report and adjusts the number it gives you, instead of assuming you are average.

🔗

Patterns

Only statistically honest ones: pre-declared pairings, sample-size and significance gates, no invented insights.

How it works

The model looks. The code counts.

A vision model is superb at recognising a plate and dreadful at arithmetic. So Umai splits the job in four. The model only ever returns what and how much, and every calorie figure is computed afterwards in ordinary code.

What Umai already knows about you your cuisines · plate sizes · saved recipes · frequent foods 📷 Photo or a typed meal STAGE 1 · MODEL Perception items · state · grams confidence only never macros STAGE 2 · LOOKUP Resolver your recipes → library → food database → research the gap STAGE 3 · CODE Arithmetic grams × per 100 g raw vs cooked yield no model involved STAGE 4 · YOU Confirm one tap ✅ or fix an item 🗄️ Stored on your own machine entries are immutable, a fix is a new row, so the history stays true 📊 Today · Week · the evening summary · your target statistics computed in code, the model only writes the sentence
From a plate to a number: four stages, one confirmation, and exactly one place in the system where a model's output may become a calorie figure.

Why it is built this way

Trustworthy beats impressive

It knows what it does not know

Every food carries a trust tier, from laboratory data down to a figure a model proposed. A provisional number is never quietly presented as fact.

Consistency over cleverness

An estimate that swings by a third between two photos of the same plate is useless. Umai is tuned for low run-to-run scatter, not for a flattering average.

It learns your kitchen

Tell it which cuisines you eat and a plate stops being "baked pasta with a reddish sauce" and becomes lasagne, a name that actually matches a food row.

Fixes reach backwards

Correct a food once and every past meal and saved recipe that used it is corrected too. Your history gets more accurate the longer you use it.

Safety lives in the code

Targets never fall below your BMR or a hard floor, weight loss is capped at a sane weekly rate, and protein has a minimum. No conversation can talk it out of these.

It is your server

Umai runs on hardware you own, and a Raspberry Pi is plenty. Your meals, weight and photos stay there, and /export and /delete_me do exactly what they say.

A day with Umai

Four moments, none of them data entry

No forms, no barcode hunting, no scrolling a database of nine hundred kinds of yoghurt. You already take photos of your food.

01Morning

Weigh in

One tap, one number. Umai keeps a single weight per day and smooths the noise into a trend you can actually read.

⚖️ 78.4
Logged. Trend 78.9 kg, ↓ 0.4 this week.
02Lunch

Send the photo

Umai names the dish, estimates the portion, prices it in calories and macros, and asks you once to confirm.

A table laid with sliced beef steak on a board, roast potatoes, sautéed peppers and a tomato salad
Beef steak, roast potatoes, pepper sauté, tomato salad.
880 kcal · 60 P / 67 C / 41 F
Right? ✅ / ✏️
03Afternoon

Tap the small stuff

Water is one button. Repeat foods come from your library. Typing works too, in plain words, with no syntax to learn.

a latte and 150g pasta
Logged. 1 042 kcal left today.
04Evening

Get the verdict

Ask with /today whenever you like, and the same summary arrives on its own at your local evening hour.

📊 Today
1940 / 2050 kcal
Protein 118 g ✅ · Water 2.1 L
8,430 steps · on track.