A nutrition tracker with no data entry screen. You talk to the assistant you already use. IZeat records and shows.
IZeat is a nutrition tracker you talk to. There is no data entry screen. You tell the assistant you already use what you ate, in your own words. The assistant writes it to IZeat.
IZeat keeps the record: each meal, what was in it, its calories and macros, and where each number came from. It compares the day to a target you chose. It shows you the day, the week and the month in the web app.
IZeat does not build its own chat. Your assistant is the interface. IZeat is the database behind it, and the rules that turn your words into a day with a total.
“I had 180g of grilled chicken, 150g of rice and a plain yoghurt for lunch.”
An answer that uses IZeat is written to begin with “IZeat ·”, so you can tell its figures from the assistant’s own words.
Every tool call returns a receipt: a sentence that states what was recorded, what the day now totals, and what is left against your target. Your assistant relays that receipt. It never answers from what it believes it sent.
Any visible answer built on an IZeat result is asked to start with the exact prefix IZeat ·, and the assistant keeps it when it translates. It is a convention rather than a seal: a model can drop it on a call that worked, so a missing prefix is not a fault to chase.
IZeat · Recorded for Friday 11 September 2026 (today): lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g (estimated). Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
A refusal is signed the same way and ends with what happened: “Nothing was recorded” or “Nothing was changed”. The assistant relays that sentence and nothing else.
Once per account, a receipt may carry one sentence starting with “New:”. It names a capability added since you connected. It is said once and never repeated.
On the ChatGPT desktop app: Settings, Plugins, Add, MCP server, then Authenticate.
These steps connect IZeat in the ChatGPT desktop app on your computer.
In the desktop app. Walked in the ChatGPT desktop app on a computer, 9 September 2026.
Copy your address: https://izeat.app/api/mcp.
Open Settings › Plugins › Add › MCP server.
Choose Streamable HTTP. Name it IZeat. Paste your address into URL, then save. If you see Command to launch, switch from STDIO to Streamable HTTP first.
Open Settings › Plugins › MCPs. Find IZeat and click Authenticate.
Sign in to IZeat, then click Allow. Return to ChatGPT and open a chat. Ask the first question below before recording a meal.
One question that reads your account and records nothing.
Ask this first. It proves the connection answers before you trust it with a meal. It reads your account and changes nothing.
“Who am I in IZeat?”
IZeat · Connected account: Sam Lee (sam@example.com). Today is Friday 11 September 2026 in Europe/Paris.
The answer names the account and the email the connection belongs to, and today’s date in your time zone. That is the proof. The “IZeat ·” prefix is not: it is a convention the model is asked to keep, and it can be missing on a call that worked. If IZeat does not know your time zone yet, the assistant asks which city you live in and stores it.
The first time, the assistant may also start a short setup: your first and last name, then the daily target you want to use. You can say “later” at any step. A missing name or target never blocks a meal.
Say what you ate with weights. The answer is the receipt: what was recorded, the totals, and what is left.
“I had 180g of grilled chicken, 150g of rice and a plain yoghurt for lunch.”
The reply is written to begin with “IZeat ·” and lists each food with its quantity in grams, the meal’s calories and macros, and where the numbers came from. Then the day’s total, and what is left against your target if you set one.
The yoghurt has no weight in that sentence. The assistant converts “a plain yoghurt” to grams, keeps your words next to the converted amount, and says in the reply that it converted. If a detail would change the figure by more than a third, it asks one short question first.
Then open the web app. The day is a list with a total.
What to say
Plain sentences. Weights and brands when you have them. The assistant asks when a detail matters.
Say the foods and their quantities. Cups and ounces are converted to grams or millilitres and your words are kept.
Name the meal, the foods, and how much of each. A weight in grams or a volume in millilitres is best. A brand helps.
“For lunch I had 180g of grilled chicken breast, 80g of steamed sweet potato and about 40g of my homemade sauce.”
IZeat · Recorded for Friday 11 September 2026 (today): lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g (estimated). Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
IZeat stores quantities in grams or millilitres only. If you say “one cup”, “4 oz” or “a banana”, the assistant converts it and keeps your measure next to the amount, as in “milk 240 ml (1 cup)”. The reply says that it converted.
One meal is one call. The whole list goes in together, in the order you said it. Each item keeps its own source, so a weighed steak next to an estimated sauce stays a weighed steak.
The assistant asks only what would change a figure by more than a third, in one short question: the fat something was cooked in, raw or cooked weight for pasta, rice, grains and pulses, or which variant when the family spans a factor of two, such as whole or skimmed milk. Everything else it assumes and says, so you can correct it in a word.
Six meal types. One of each per day. The day always lists them in the same order.
Order
Meal type
1
Breakfast
2
Morning snack
3
Lunch
4
Afternoon snack
5
Dinner
6
Evening
The day shows meals in this order whatever the hour they were recorded. A breakfast corrected in the afternoon still comes first.
There is one meal of each type per day. If lunch is already recorded and you say “for lunch I also had a yoghurt”, the assistant adds it to that lunch. Something eaten at another time goes under another meal type. If none fits, the assistant picks the nearest and says so.
IZeat · Lunch is already recorded for 2026-09-11: grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g (455 kcal). If this is part of it, add it to that lunch; if it was eaten at another time, record it under another meal type. Nothing was recorded.
Add something you forgot, or correct what was recorded. The earlier version stays in your history.
Two kinds of change. Add when you ate something more with a meal already recorded. Revise when a quantity was wrong, a food should be replaced or removed, or several things change at once.
“Add a plain yoghurt to my lunch, one pot, 125g. The label says 90 kcal, 8g protein, 7g carbs, 3g fat.”
IZeat · Updated: added plain yoghurt to the lunch of Friday 11 September 2026 (today). Lunch now contains: grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g, plain yoghurt 125 g (one pot) (estimated: homemade sauce). Its recorded totals are 545 kcal · P 66g · C 27g · F 18g; they were 455 kcal · P 58g · C 20g · F 15g. The complete meal includes estimated nutrition values. Total: 545 kcal · P 66g · C 27g · F 18g. Against the target: 1455 kcal remaining · 84g protein remaining.
“Actually I did not have the sauce with lunch. Take it out.”
IZeat · Corrected: the lunch of Friday 11 September 2026 (today) — Removed the homemade sauce. Lunch now contains: grilled chicken breast 180 g, steamed sweet potato 80 g. Its recorded totals are 365 kcal · P 57g · C 16g · F 7g; they were 455 kcal · P 58g · C 20g · F 15g. The nutrition values are reference values for weighed foods. Total: 365 kcal · P 57g · C 16g · F 7g. Against the target: 1635 kcal remaining · 93g protein remaining.
A correction never edits the meal in place. It creates a new version and keeps the previous one. The reply states the concrete change, the new totals, the old totals, and the day so far.
IZeat sums the rows itself. The assistant sends the list of foods; it never recomputes a total.
Take back the latest write, or put it back. Two steps: a preview, then your confirmation within ten minutes.
Undo takes back the latest meal write: a meal just recorded, or a change just made to a meal. It is for “no, not that”, right after it happened.
It always takes two steps. The first shows you what would be undone and changes nothing. The second, after you say yes, does it. The confirmation must come within ten minutes of the preview.
“Undo what you just logged.”
IZeat · This would remove the last recorded meal: 2026-09-11 lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Nothing was changed yet. Shall I go ahead?
“Yes.”
IZeat · Undone: the last recorded meal, 2026-09-11 lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g, was removed from the active day. No meal is recorded for this date. Available against the target: 2000 kcal remaining · 150g protein remaining.
Restore puts back what the last undo removed, with the same two steps.
“That undo was a mistake. Put it back.”
IZeat · Restored: 2026-09-11 lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
Delete one meal by its day and type, however old. Preview first, then confirm within ten minutes.
Delete removes one specific meal, named by its day and meal type. It works on any meal, not only the latest one, and it has no age limit.
“Delete yesterday’s lunch.”
IZeat · This would delete Thursday 10 September 2026 (yesterday) lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Nothing was changed yet. Do you confirm?
“Yes, delete it.”
IZeat · Deleted: Thursday 10 September 2026 (yesterday) lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. No meal is recorded for this date. Available against the target: 2000 kcal remaining · 150g protein remaining.
A deleted meal no longer counts in the day. It stays in your private history. If more than ten minutes pass, or the meal changed since the preview, the assistant shows it again and asks again.
Ask what you ate, where you stand, or what is left. One day, every meal, the total, the target.
“What have I had today, and how much is left?”
IZeat · Friday 11 September 2026 (today): lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g (estimated: homemade sauce). Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
The answer lists every meal of the day in day order, with each meal’s calories and macros. Then the day’s total. Then what is left against the target in force that day, per nutrient that has a target.
Over and under are both facts and are said the same way: “120 kcal over target” next to “30g protein remaining”. No nutrient without a target gets a number.
In an assistant that can show interactive reports, a request for a balance or a chart draws the day as a visual. The text stays to the signed line and one or two sentences.
A week, the last four weeks, a month, day by day. Averages are per recorded day; a day with nothing recorded stays empty.
“Show me the last seven days.”
IZeat · Period from 5 Sep to 11 Sep. 1 of 7 days has an entry. Average across that 1 recorded day: 455 kcal (P 58g · C 20g · F 15g). Calorie target at the end of the period: 2 000 kcal.
A period answer says how many days have entries, the average per recorded day, and the target in force at the end. If the target changed during the period, it says so.
Ask “day by day” for one line per day, through 31 days. Ask for every meal through 31 days. A longer range is grouped by week through one year, and by month after that. Each bar is an average per recorded day.
A day with nothing recorded is a gap, never a zero. It does not pull the average down.
Your name, your daily target and your time zone are set by conversation. A new target starts on a day; earlier days keep theirs.
There is no settings page. You tell the assistant the daily target you want: calories, and protein, carbohydrate and fat in grams. At least one of them. The assistant stores only the figures you chose.
“Set my target to 2000 kcal and 150g of protein from 3 September.”
IZeat · Stored: new target from 2026-09-03. Target since 2026-09-03: 2000 kcal · P 150g.
A target is never overwritten. A new one starts on the day you name, or today, and the days before keep the target they had. Your history stays comparable to what you were aiming at then.
“What is my current target?”
IZeat · Seb: Target since 2026-09-03: 2000 kcal · P 150g.
IZeat does not calculate or recommend a target. If you ask your assistant, as your general assistant, to help you estimate one, that advice is its own and stays outside IZeat. IZeat stores the figures you then choose.
IZeat asks once which city you live in. From then on every day is counted in your time zone.
A day belongs to the place you ate it in. A dinner at 23:40 belongs to that evening, not to the server’s clock.
When IZeat does not know your time zone, the first reply says so and the assistant asks which city you live in. It stores the matching time zone. It does not ask again unless you say you moved.
IZeat · Stored: days are now counted in Europe/Paris. Target since 2026-09-03: 2000 kcal · P 150g.
The assistant never computes a date itself. It passes your word, “yesterday”, “3 days ago”, “Tuesday”, and IZeat resolves it in your time zone. Every reply names the day in words so you can see which day it meant.
A label photo is read and echoed back. A plate photo gets questions first. Never a number from a picture alone.
You send photos in the chat. Your assistant reads them. IZeat has no camera and no scanner of its own.
A nutrition label. The assistant reads the values and repeats them back before recording, so a misread is caught in the same breath. Say how much you ate. The numbers are stored with the source “label”.
“Here is a photo of the nutrition label. I ate 125g.”
A plate. A picture shows what the food is. It does not show how much is on the plate, nor what it was cooked in. So the assistant asks first, for one easy portion cue suited to the food: a weight, or spoonfuls or ladles, a fraction of the plate or batch, or a known container size. If you have no cue, it asks for a top and a side photo with a ruler, a utensil of known length, or your hand beside the food.
“Here is a photo of my plate. Guide me through the portions and preparation details you need before estimating it.”
If you accept an estimate, the assistant states a range and records its midpoint as an estimate. It never says “exactly”. It never guesses a bowl’s capacity from its look, and it never silently assumes normal portions.
Every number carries where it came from: a label, you, a reference table, or an estimate. Each is shown as what it is.
Source
What it means
How it reads in a reply
label
Read from packaging or a nutrition label, in a photo or in text.
(label)
user
You gave the numbers yourself.
(user)
reference
A plain, unmixed food you weighed, valued from a standard composition table.
(reference values)
llm_estimate
The assistant deduced something: a mixed or homemade dish, or a portion it had to guess.
(estimated)
Each item in a meal keeps its own source. A meal is as certain as its least certain item: one estimated sauce makes the meal “estimated”, and the reply names the estimated items when only some are.
A label read beats a figure you said or a reference value, which beat an estimate. The web app shows an estimated number as an estimate, never as a weighed one.
The assistant never invents a number. Every figure it relays comes from a tool reply, and every tool reply says which source each item has.
Tools
The eleven tools your assistant can call. You never name them; you say what you want and the assistant picks one.
Verifies which IZeat account is connected and reports its setup state and today’s date in your time zone.
Verifies the IZeat account connected to this conversation and reports its onboarding state. It never changes the account. It names today’s date in the account’s time zone, so the assistant uses that date and not its own sense of the day.
When. Once, before the first IZeat operation in a conversation. Not before every meal. The assistant briefly says which account is connected on that first reply.
Returns. The email, the first and last name, whether a target exists, the onboarding status, the missing fields, the time zone and today’s date. If no time zone is known, the reply says to ask which city you live in.
“Who am I in IZeat?”
IZeat · Connected account: Sam Lee (sam@example.com). Today is Friday 11 September 2026 in Europe/Paris.
Reads the account and tells the assistant the next setup step. It records nothing.
Reads the connected account and tells the assistant the next onboarding step. It never records or changes anything. Setup is two short steps: your first and last name, then the daily target you already use.
When. After get_connected_account, when setup is not complete, or when you ask to resume it. If you said “later”, setup stays paused and is not raised again unless you ask, or ask for personalised advice without a target.
Returns. The onboarding status, the next step and the fields it needs, whether a target exists, and, once setup is complete, a short list of things you can ask for.
“Let’s finish my IZeat setup.”
IZeat · Welcome. There are no forms to fill in: tell me what you eat and I keep your journal in IZeat. Your profile needs two short setup steps first. How would you like me to address you in IZeat? Please give me your first name and last name. You can also say “later”.
Returns your name and the target in force on a date.
Returns your name and the target in force on a date: the latest target set on or before it. Without a date, the latest target.
When. When you ask directly about your profile or target. A day summary already includes that day’s target, so the assistant does not call both for a day comparison.
Returns. First name, last name, the target with the day it started, and how many targets you have set over time.
“What is my current target?”
IZeat · Seb: Target since 2026-09-03: 2000 kcal · P 150g.
Stores your name, a new target, your time zone, or setup progress. The only tool that changes the profile.
Stores your name, a new daily target, the time zone your days are counted in, and setup progress. It is the only way anything about the profile changes. Every field is optional; only what is passed changes.
When. When you choose a target, give your name, name the city you live in, or say you moved. The assistant sets only what you actually chose. It never fills in a nutrient you did not mention and never calculates a target for you.
Returns. What was stored and the target now in force. A target is added, never overwritten: it starts on the day you name, or today, and earlier days keep theirs.
“Call me Seb, and set my target to 2000 kcal with 150g of protein from 3 September.”
IZeat · Stored: new target from 2026-09-03; name → Seb. Target since 2026-09-03: 2000 kcal · P 150g.
Records one meal, the whole list of foods in one call, each with its quantity, calories, macros and source.
Records one meal, the whole meal in one call, as the list of what was eaten: one item per food with its quantity in grams or millilitres, its calories, its macros and its source. IZeat rounds once and sums the rows itself.
When. When you say what you ate. If the day or the meal type is unclear, the assistant asks; it never assumes either. If a quantity or a homemade or restaurant dish is too vague, it asks one short bundled question before recording. One meal of each type per day: a second dinner is refused, and the assistant adds to the existing one instead.
Returns. Every item with both measures, the meal’s totals and source, and the day so far against that day’s target. No internal identifiers, no timestamps. The same request retried never creates a second meal.
“For lunch I had 180g of grilled chicken breast, 80g of steamed sweet potato and about 40g of my homemade sauce.”
IZeat · Recorded for Friday 11 September 2026 (today): lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g (estimated). Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
Changes a meal already recorded: add what you forgot, or revise what was wrong. Only the rows that differ are touched; a replaced row is kept in your history.
Changes one meal that is already recorded, identified by its meal type and day. It never creates a missing meal. Action add appends the foods you also ate. Action revise takes the corrected list and changes only the rows that differ, stating each change in words.
When. When you say “I also had”, “it was 180g not 200g”, “take out the sauce”, or several of those at once. For a revision the assistant reads the meal first with get_meal, then sends the complete corrected list. It never recomputes totals; IZeat sums the rows.
Returns. The concrete change, the meal as it now is with its rows, the new and the previous totals, the source sentence, and the day so far. A replaced row stays in your history, pointing at what replaced it. A repeated identical request is not applied twice.
“Add a plain yoghurt to my lunch, one pot, 125g. The label says 90 kcal, 8g protein, 7g carbs, 3g fat.”
IZeat · Updated: added plain yoghurt to the lunch of Friday 11 September 2026 (today). Lunch now contains: grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g, plain yoghurt 125 g (one pot) (estimated: homemade sauce). Its recorded totals are 545 kcal · P 66g · C 27g · F 18g; they were 455 kcal · P 58g · C 20g · F 15g. The complete meal includes estimated nutrition values. Total: 545 kcal · P 66g · C 27g · F 18g. Against the target: 1455 kcal remaining · 84g protein remaining.
One recorded meal, exactly as stored: its rows in order, its totals, and whether it was already corrected. Draws nothing.
Returns one meal as it is recorded: each row with its position, description, quantity, calories, macros and source, the meal’s totals, and whether this version replaced an earlier one. It shows no card.
When. Before a revision, so the assistant copies the untouched rows exactly; and when you ask what one meal contains. Today needs no date. For the whole day with its card, the assistant uses day_summary instead.
Returns. The meal’s rows and totals, with no storage identifiers. When no meal of that type is recorded that day, the reply says so and names the meals that day does have, so the assistant asks you which one you mean.
“What did I record for lunch?”
IZeat · Lunch of Friday 11 September 2026 (today). Rows as stored: 1 grilled chicken breast 180 g — 297 kcal · P 56g · C 0g · F 6g, reference values · 2 steamed sweet potato 80 g — 69 kcal · P 1g · C 16g · F 0g, reference values · 3 homemade sauce 40 g — 89 kcal · P 1g · C 4g · F 9g, estimated. Meal totals: 455 kcal · P 58g · C 20g · F 15g (estimated).
Everything recorded for one day: each meal and its items, the totals, the target, and what is left.
Returns everything recorded for one date: each meal with its items, quantity, calories, macros and source per item, the day’s totals, the target in force that day, and the signed difference per nutrient.
When. When you ask what you ate, where you stand, or how much is left. Today needs no date. It reads one day only; several days go to period_summary. When you ask what to eat, the assistant reads the day first and composes from what is left.
Returns. A typed day report with no storage identifiers, plus silent rendering data. In an assistant that shows interactive reports, a request for a balance or chart draws the day and the text stays to the signed line and one or two sentences. Over and under are relayed neutrally.
“Where am I today?”
IZeat · Friday 11 September 2026 (today): lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g (estimated: homemade sauce). Total: 455 kcal · P 58g · C 20g · F 15g. Against the target: 1545 kcal remaining · 92g protein remaining.
What was recorded between two dates: coverage, totals, average per recorded day, and day, week, month or meal rows.
Returns what was recorded between two dates, inclusive: how many days have entries, the totals, the average per recorded day, the target timeline, and rows by day, week, month or meal. Missing days have no value, never zero.
When. When you ask about more than one day: a week, a month, “the last four weeks”, “day by day”, “what did I eat last week”. It needs two different dates: a single day is day_summary’s, which also returns each meal and its items. Daily rows run through 31 days, weekly averages through one year, monthly averages after that.
Returns. A typed period report with no storage identifiers, plus silent rendering data for a visual. At most the latest two years in one answer; the reply names the range it covers and when your history starts. The assistant does not rank days unless you ask.
“Show me the last seven days.”
IZeat · Period from 5 Sep to 11 Sep. 1 of 7 days has an entry. Average across that 1 recorded day: 455 kcal (P 58g · C 20g · F 15g). Calorie target at the end of the period: 2 000 kcal.
Takes back the latest meal write, after a preview and your confirmation within ten minutes.
Undoes only the latest meal write, when you immediately ask to take that write back. The write may be a newly recorded meal or an update to a meal. A recorded meal is removed from the active day; an update returns the meal to its previous version.
When. “Undo what you just logged.” Not for reaching a corrected meal by unwinding several steps; a correction goes through update_meal. Always two steps: a preview that changes nothing, then, after you agree, a confirmation within ten minutes. IZeat remembers what it showed.
Returns. On preview, the exact change that would be undone. On confirmation, what was undone, the meal now active if any, and the recomputed day. Only a change made in the last 48 hours can be undone.
“Undo what you just logged.”
IZeat · This would remove the last recorded meal: 2026-09-11 lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Nothing was changed yet. Shall I go ahead?
Puts back what the last undo removed, after a preview and your confirmation within ten minutes.
Restores the latest meal change undone with undo_last_change, when you say the undo was a mistake. A meal returns to the day, or an update returns to its meal. Nothing is removed by this tool.
When. “That undo was a mistake.” Always two steps: a preview that changes nothing, then a confirmation within ten minutes after you agree.
Returns. On preview, what would return. On confirmation, the restored meal and the recomputed day. Only something undone in the last 48 hours can be restored; older, you record it again.
“That undo was a mistake. Put it back.”
IZeat · This would restore: 2026-09-11 lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Nothing was changed yet. Shall I go ahead?
Deletes one specific meal by day and type, however old, after a preview and your confirmation.
Deletes one specific recorded meal, identified by your local date and meal type, even when it was not the latest change. There is no age limit. The meal stays in your private history but no longer counts in the day.
When. “Delete yesterday’s dinner.” When you simply want the latest action taken back, the assistant uses undo_last_change instead. Always two steps: a preview, then a confirmation within ten minutes after you explicitly agree.
Returns. On preview, the exact meal that would be deleted. On confirmation, the deleted meal and the recomputed day. If no such meal exists, the reply says so and nothing is deleted.
“Delete yesterday’s lunch.”
IZeat · This would delete Thursday 10 September 2026 (yesterday) lunch — grilled chicken breast 180 g, steamed sweet potato 80 g, homemade sauce 40 g — 455 kcal · P 58g · C 20g · F 15g. Nothing was changed yet. Do you confirm?
Your data
Where it lives, who sees it, how you take it with you, and how you make it go away.
Your account and nutrition data sit in a Supabase database in London. The site and the server run on Vercel, also in London.
Your account and nutrition data sit in a database run by Supabase in London, region eu-west-2. The website and the MCP server run on Vercel, also in London.
IZeat stores your email, your first and last name if you gave them, your meals as your assistant recorded them with the source of each number, your daily targets with the date each started, the assistants you connected and the technical tokens that keep each connection working, and your time zone.
IZeat is operated by Soltea (Pty) Ltd, registered in South Africa. The service providers involved receive only what they need for their part: Supabase for the database and sign-in, Vercel for hosting, Resend for the emails IZeat sends, Google only if you sign in with Google, PostHog EU for anonymous and cookieless page counts on the public website, Sentry for error reports, Polar for payment records.
IZeat receives only the tool request your assistant sends, and returns only the account data needed to answer it.
The assistant is yours: Claude, ChatGPT, or another. What you say to it is governed by that provider’s own policy. IZeat never receives the rest of your conversation.
IZeat receives only the tool request the assistant sends: a meal to record, a target to set, a day or a period to read. It returns only the account data needed to answer that request. Your assistant provider receives that reply so it can show it to you.
When you connect an assistant, IZeat may share your verified email address through the standard OpenID UserInfo endpoint, so the provider can confirm which IZeat account is connected. You approve this on the authorization screen.
A connection is signed in as one account. Every tool reads and writes that account only. You can revoke any connection from the Assistants page in the web app; the assistant loses access on the spot.
Delete the account yourself from the account page, at any time. Thirty days to change your mind.
Open the account page and choose “Delete account”. Your assistants are disconnected on the spot and you are signed out.
You then have 30 days to change your mind: signing in again keeps the account. After that, your email, name, sign-in and connections are removed for good. Your meals and targets are kept with no link to you, so they no longer point at anyone.
For a correction, a question or a complaint about your data, write to hello@izeat.app. A person answers.
If a card looks wrong on your screen — cut on one side, too large, too small — tap the IZeat mark at the top right of the card. A line of display details appears under the date. For any problem, izeat.app/report is one form, signed in: what it is about, what happened, a screenshot. Under a card, "Report it" opens the same form with the measurements the card took, so a display problem is understood from the first message. Nothing in those measurements is about your food or your account.
No selling, no advertising, no analytics on your food, no model training on your data.
Sell your data, or share it with anyone for advertising.
Show you advertising.
Send what you ate or what you weigh to any analytics service. PostHog counts anonymous visits to public pages, never food, never weight, never an account or a target.
Use your data to train a model.
Two cookies: the one that keeps you signed in, and the one that remembers your time zone. No tracking cookies, and no consent banner, because there is nothing to consent to.
Use the report form, with or without an account. A person answers.
Whether a meal looks wrong, an assistant will not connect, or you have a question about your account, use the [report form](/support) and tell us what happened. It works with or without an account: signed in, we know where to answer; otherwise it asks for an email address. A person reads it and answers, usually within a day.
For a connection problem, send the exact reply you received, prefix included. For a meal that looks wrong, ask your assistant what was recorded and when; the answer names the day, the foods, the quantities and the sources.