Snap a Meal: log a plate from a photo, on your own key
slotho can log a meal from a photograph of the plate. Point the camera at what you are about to eat, and it comes back with a list of what it found, each with an amount you can adjust, and one button that logs all of it. The feature is called Snap a Meal. It arrived in 26.2 and got a proper provider picker in 26.3, and this post is the write-up it never had.
The part worth reading is not the recognition. It is where the photograph goes, and where the numbers come from.
What happens when you take the photo
- In the Log tab, open Snap a Meal, or tap the camera button in the food search field.
- Take a photo, or choose one from your library.
- slotho sends the photograph to the provider you configured and asks it to name every food or drink it can see.
- Each item comes back as a row. Where the name matches a food in slotho’s database, the row is marked From Food Database and carries that food’s nutrition. Where it does not, it is marked Estimated and carries the provider’s own guess, which you can correct or match to a food yourself.
- Adjust the amounts, remove what is wrong, and press Log All.
An item the provider names but nothing can quantify is not logged silently. It says so, and asks you to match it to a food or remove it.
Where the photograph goes
Recognising food in a photograph needs a model that can see, and there is no on-device option for that yet. So Snap a Meal works only once you have connected a provider of your own, and it is off until you do.
You do that in Settings → Intelligence. Pick a provider from the list, paste an API key from your own account with that provider, and press Test connection. The test sends a tiny generated image the same way a real photo would go, and tells you one of two things: Photos work with this model, or This model can’t analyse photos, text features still work. Some models are text-only, and a text-only model is a perfectly good setup for someone who only wants typed entries parsed.
Before the first photo leaves your phone, slotho names the host it is about to send to and asks. Your answer is recorded for that provider only. Point the app at a different endpoint and it asks again, because consent to one recipient is not consent to another. You can withdraw it for every provider from the same Settings screen.
What travels is the photograph, to the provider you chose and under that provider’s terms. Nothing about your logs, your health data or who you are goes with it. We are not in the exchange and never see it.
The key itself lives in the iOS Keychain. Neither the key nor the photo is written to the app’s logs.
Why the numbers come from the database
A model looking at a plate can name grilled chicken. It can also estimate 150 grams and 248 kcal, and it will do so with great confidence whether or not it is right.
So slotho treats the provider’s job as naming, and its own database’s job as quantifying. When the name matches a food slotho already knows, the macros come from that entry, not from the model. And a home-cooked plate gets no Nutri-Score or NOVA grade at all: those are properties of packaged products with known recipes, and a grade shown for a plate of your own cooking would be a guess dressed as a fact. Where there is no match, the row says Estimated and stays visibly an estimate.
The matching rule is deliberately strict. “Grilled chicken” must not quietly become one particular brand’s breaded chicken burger because the words overlap. A wrong match is worse than an honest estimate.
Which providers
The picker in 26.3 fills in the endpoint for OpenAI, Anthropic, Google Gemini, Mistral, DeepSeek, Groq, OpenRouter and xAI, and pulls the model list live from the provider so you are not typing model names from memory. There is also a Custom entry for any other service that speaks the same API.
Two things the list cannot tell you: which models can see a photograph, and which ones work well on one. The connection test answers the first. The second you will find out on your own plates, and we would like to hear which model you settled on.
The picker also lists Ollama and LM Studio, which run on a Mac or PC rather than on the phone. Reaching one of those from an iPhone depends on your network setup and on how iOS treats unencrypted local connections, and we have not verified that path end to end, so this post makes no promise about it.
What it costs
slotho is free to download and Snap a Meal is not a Pro feature. What you pay is whatever your provider charges for the requests, on your own account, visible in your provider’s own dashboard. One photo is one request per detected region, so a plate is typically a single call. Your key, your bill.
Typed entries are a separate switch
The same Settings screen has a switch called Use AI for typed entries, and it is off until you turn it on. With it on, a sentence like “two eggs and a coffee” is read by the parsing engine before the built-in rules. On a device that supports Apple Intelligence that happens on the phone, and the sentence never leaves it; with a provider connected you can choose the remote model instead, or no AI at all. Photos are different: as the screen itself says, photos always use the provider.
More
- slotho privacy — the full account of what leaves the device and when, including this feature
- slotho FAQ — barcode scanning, food search settings and the rest
- slotho support — if something here does not match what you are seeing
- slotho on red8.io — food, water, caffeine, sleep, workouts and fasting, in Apple Health
slotho supports general wellness. A nutrition estimate from a photograph is a starting point for your own judgement, not a measurement, and it is not medical advice.