• Photo description: Breakfast is a piece of bread, two eggs, 1/3 cup spinach, bbq sauce
  • Analysis services used: Local, Claude CLI, Codex CLI

Macro comparison

Metric Local Claude CLI Codex CLI Aggregate
Calories (kcal) 277 295   286
Protein (g) 17 17   17
Carbohydrate (g) 27 25   26
Fat (g) 11 14   12.5
Confidence moderate moderate   derived
Status ok ok failed 2 services

Service notes

| Field | Local | Claude CLI | Codex CLI | |---|---|---|---| | Food description | Bread
Eggs
Spinach
Barbecue sauce | Bread (1 slice)
Eggs (2, cooked)
Spinach (cooked)
BBQ sauce | | | Portion summary | Bread: 40 g
Eggs: 100 g edible portion
Spinach: 10 g
Barbecue sauce: 15 g | Bread: 1 standard slice, ~30 g
Eggs: 2 large eggs, ~100 g total (raw weight)
Spinach: 1/720 mL cooked, ~60 g
BBQ sauce: ~15 mL (1 standard serving)
Bread (1 slice): 80 kcal, 3 g protein, 15 g carbohydrate, 1 g fat
Eggs (2 large, fried with ~5 g oil): 170 kcal, 12 g protein, 1 g carbohydrate, 13 g fat
Spinach (1/720 mL cooked): 15 kcal, 2 g protein, 2 g carbohydrate, 0 g fat
BBQ sauce (~15 mL): 30 kcal, 0 g protein, 7 g carbohydrate, 0 g fat | | | Assumptions | Bread was estimated as a standard single slice of sandwich bread
Eggs were estimated as 2 large eggs, cooked without added oil or butter
Spinach was assumed to be raw and loosely packed
Barbecue sauce was estimated as about 15 g
No additional cooking fats, cheese, or other ingredients were included | Bread is a standard white or wheat sandwich slice (~30 g)
Eggs are large and fried or scrambled with a small amount of oil (~5 g)
1/720 mL spinach refers to cooked/wilted volume (~60 g), not raw
BBQ sauce is a single standard serving (~15 mL) | | | Uncertainty notes | The largest sources of uncertainty are the bread type and weight, the actual amount of barbecue sauce, and whether the eggs or spinach were cooked with added fat. | Cooking method for the eggs is the largest variable; boiled would reduce total by ~45 kcal and ~5 g fat
If the spinach measurement refers to raw volume (~10 g), the spinach contribution drops to near zero but has minimal impact on the total
BBQ sauce amount could vary; a generous drizzle (~30 mL) would add roughly 30 kcal and 7 g carbohydrate | Reading additional input from stdin... OpenAI Codex v0.128.0 (research preview)


workdir: /Users/notgeoff/.openclaw/tmp/nutrition-codex-virxej10 model: gpt-5.3-codex provider: openai approval: never sandbox: read-only reasoning effort: none reasoning summaries: none session id: 019e8825-4d40-7ee3-ab1e-932dab8a61d5


user

Nutrition analysis prompt

You are a nutrition estimation agent.

Your task is to estimate the macronutrients of a food, drink, meal, snack, supplement, or nutrition product using:

  • an attached photo
  • a text description
  • or both

Your goal is to provide the most practical and reasonable estimate possible, based on the best available evidence.

Inputs

You may receive:

  1. A food photo
  2. A text description
  3. Both

Primary objective

Estimate the likely total:

  • Calories
  • Protein (g)
  • Carbohydrate (g) — total carbohydrates, not net carbs, unless a label specifies otherwise
  • Fat (g)

If multiple items are present, estimate each item first, then provide a total.

Working rules

  • Use the strongest available evidence first.
  • Prefer visible labels, packaging, brand names, menu details, or stated serving sizes over generic assumptions.
  • If the text description conflicts with the photo, prioritise whichever source appears more reliable and note that choice.
  • Be practical, not falsely precise.
  • Use rounded estimates unless the source provides exact labelled values.
  • Clearly distinguish observed facts from inferences in the output.
  • Use metric units only in all output. Do not use or emit oz, ounces, lb, lbs, pounds, inches, cups, tbsp, or tsp. Convert any such estimate into g, kg, mL, cm, or other metric units before returning the result.
  • When portion size is unclear, estimate using common real-world serving sizes.
  • For homemade or mixed foods, estimate from likely ingredients, preparation method, and portion size.
  • For restaurant or takeaway food, infer from typical serving sizes and preparation style.
  • Do not invent ingredients, serving sizes, or product details that are not reasonably supported.
  • If certainty is limited, provide the most likely estimate and state the main uncertainty.
  • If the image is too unclear for a confident identification, say so and give a best-effort estimate or range.
  • If the input does not contain a recognisable food, drink, or nutrition product, state this clearly and do not fabricate an estimate.

Confidence levels

Use the following criteria when assigning a confidence rating:

  • High: label values were used, or the item is well-known with a clear portion size
  • Moderate: item identified with confidence but portion size was estimated
  • Low: item is unclear, portion was guessed, or significant ambiguity exists

Estimation method

Follow this order:

  1. Identify the food item or items
  2. Estimate portion size for each item
  3. Estimate macros for each item
  4. Sum the totals
  5. Verify that the stated calories are broadly consistent with the macro totals using standard conversion factors (4/4/9 kcal per gram for protein/carbohydrate/fat) and note any significant discrepancy
  6. State confidence and key assumptions

Special cases

  • If this is a non-alcoholic drink, estimate liquid volume and likely ingredients.
  • If this is an alcoholic drink, estimate alcohol content separately and include alcohol-derived calories in the total. Note the estimated alcohol content in grams alongside the four macros.
  • If this is a packaged product and a nutrition label is visible, use the label values.
  • If a serving count is unclear for a packaged product, estimate how much of the package was consumed.
  • If this is a supplement, identify the likely product type and estimate using standard serving patterns only if the exact label is not visible.
  • If there are multiple plausible interpretations, choose the single most likely interpretation and note the uncertainty.
  • If a range is more appropriate than a single number, provide a range and then provide a best-estimate midpoint.

Output format

Return the result in exactly this structure:

Food identified:
- [item 1]
- [item 2]

Observed evidence:
- [brief bullet list of facts directly visible or stated, e.g. visible product label, bowl appears medium-sized, description states grilled chicken]

Estimated portions:
- [item 1]: [estimated portion in metric units only]
- [item 2]: [estimated portion in metric units only]

Estimated macros by item (omit this section if only a single item is present):
- [item 1]: [calories] kcal, [protein] g protein, [carbohydrate] g carbohydrate, [fat] g fat
- [item 2]: [calories] kcal, [protein] g protein, [carbohydrate] g carbohydrate, [fat] g fat

Estimated total:
- Calories: [total] kcal
- Protein: [total] g
- Carbohydrate: [total] g
- Fat: [total] g

Confidence:
- [high / moderate / low]

Assumptions:
- [brief bullet list of key assumptions]

Uncertainty notes:
- [brief note on what could materially change the estimate, or "None significant"]

Now analyse the provided input and return the estimate in the format above.

Use the following input for this analysis.

Text description: Breakfast is a piece of bread, two eggs, 1/3 cup spinach, bbq sauce

Neutral photo description: Breakfast is a piece of bread, two eggs, 1/3 cup spinach, bbq sauce

Return the estimate in the exact required format and nothing else.

Critical: this is an offline nutrition-estimation task, not a chat-channel response. Never output NO_REPLY. If you cannot estimate exactly, still return the required nutrition estimate format with low confidence. ERROR: {"type":"error","status":400,"error":{"type":"invalid_request_error","message":"The 'gpt-5.3-codex' model is not supported when using Codex with a ChatGPT account."}} ERROR: {"type":"error","status":400,"error":{"type":"invalid_request_error","message":"The 'gpt-5.3-codex' model is not supported when using Codex with a ChatGPT account."}} | | Raw-output reference | local.md | claude-cli.md | |

Aggregate estimate

  • Calories: 286 kcal
  • Protein: 17 g
  • Carbohydrate: 26 g
  • Fat: 12.5 g
  • Aggregate method: simple mean across 2 successful service(s)