Zest helps you scan packaged food labels and understand how processed they look. It focuses on the ingredient panel, gives a NOVA-style classification, highlights important ingredients, and keeps your scan history on your device.
Zest is meant to feel fresh, clear, and food-focused. The app is built to help you cut through label noise, understand what is really inside a product, and make better everyday choices without friction.
In practice, Zest is about:
- reading labels faster
- spotting ingredient-level signals clearly
- choosing healthier options with more confidence
- Scan food ingredient labels with the camera.
- Import a label photo from your gallery.
- Scan a barcode and look up product data when USDA access is configured.
- Show a NOVA-style result for the full label.
- Break ingredients into compact color-coded bubbles.
- Show allergen signals in a separate section.
- Save scan history locally on your phone.
- Show token and cost usage in scan history, using provider-reported usage when available.
- Use the same Zest splash, launcher icon, typography, and sound setting across the app.
- Keep API keys encrypted on device.
Zest is designed as a consumer-grade ingredient intelligence layer: fast enough for the grocery aisle, structured enough for product decisions, and privacy-conscious enough for everyday trust.
- Instant ingredient clarity: scan a package label and turn dense ingredient text into a plain-language processing assessment.
- NOVA-style classification: see whether a product is closer to minimally processed, processed culinary, processed, or ultra-processed.
- Red/green ingredient capsules: quickly spot which corrected ingredient names were identified as ultra-processed markers.
- Separate allergen intelligence: common US / Western allergens appear in their own section instead of being mixed into processing signals.
- Human-readable summaries: each result includes a concise, consumer-friendly one-liner that explains what the ingredient list suggests.
- Non-food rejection: if the scan does not contain a consumable food item or ingredient evidence, Zest stops early and explains why.
- Images stay on device: captured and uploaded label images are never sent to AI providers.
- On-device OCR first: ML Kit extracts text locally before any model call happens.
- Text-only AI analysis: providers receive extracted ingredient text, not the original image.
- Encrypted key storage: LLM and USDA API keys are stored through encrypted on-device storage.
- Local-first history: scan results and failed scans are stored locally through Room.
- No account required: users can analyze labels without sign-in or cloud sync.
- Staged AI pipeline: one call for NOVA classification, one call for ingredient cleanup and ultra-processed marker detection, one call for allergens, and chat only on demand.
- Deterministic model settings: API calls use low-variance parameters for more consistent product behavior.
- Result-scoped chat: users can ask follow-up questions about the current scan without turning the app into a general chatbot.
- Barcode support: barcode scans can enrich analysis through USDA data when configured.
- Failed scan recovery: failed image-based scans can appear in History with a rerun path.
- Usage visibility: History shows provider-reported token and cost usage by model/provider when available, with local estimates as fallback.
- Professional Compose UI: shared typography, brand assets, spacing, colors, splash, launcher icon, and sound settings.
- System back handling: Android back and edge-swipe gestures route within the app instead of accidentally closing it.
- Build safeguards: source-tree checks block retired demo, legacy, rule-based, and dataless source files before build work proceeds.
- Release-minded storage: Room migrations preserve history and support failed-scan records.
- Developer documentation: architecture, pipeline contracts, security, testing, and roadmap docs are maintained under
documentation/.
- Install and open the app on an Android phone or tablet.
- Review the disclaimer on first launch and tap
I agree, thenNext. - Go to
Settings. - Add your AI model key if you want label analysis. Images stay on device; OCR extracts text locally.
- Optionally add the USDA key if you want barcode lookup support.
- Wait for the key status indicator to turn green before scanning.
- Open the app.
- Choose one of these options:
- Scan a label with the camera.
- Upload a label photo from your gallery.
- Scan a barcode.
- Review the analysis result.
- Review the ingredient capsules to see which corrected ingredients were flagged as ultra-processed markers.
- Check the allergen block for separate allergen signals.
- Open
Historyto revisit old scans.
NOVA 1usually means minimally processed.NOVA 2usually means processed culinary ingredients.NOVA 3means processed foods.NOVA 4means the label has stronger ultra-processing signals.
Ingredient capsules are color-coded from the API-returned ultra-processed marker list: red for flagged ultra-processed markers, green otherwise. Allergen signals are shown separately so they do not get mixed into the ingredient score.
Zest is designed to keep your data local by default.
- Scan history stays on your device.
- Saved keys are encrypted on device.
- Saved keys are not shown back in plain text.
- No sign-in is required.
When you analyze a label, OCR runs on device first. The app never sends captured or uploaded label images to the API provider. Only extracted text or corrected ingredient names are sent for NOVA classification, ingredient analysis, allergen detection, and result chat when you have configured a key.
- Zest is not medical advice.
- Zest is not a nutrition label verifier.
- If the image is not a real ingredient panel or ingredient list, the app will reject it.
- The first-run disclaimer is also available from
Settings. - Barcode lookup depends on USDA availability and may fail if the product is missing from the database.
- API providers may rate-limit requests. If that happens, the app will tell you.
Zest is built and maintained by the B2 group.
- Technical Advisor
- Atul Bhagat - LinkedIn
- Contributors
If you contributed code, design, testing, or product feedback, add your name here in future releases.
Zest is distributed under a modified MIT-style non-commercial license.
See the license text in LICENSE/LICENSE.md.
If the app fails to analyze a label:
- Check that the ingredient panel is visible and readable.
- Try a clearer photo with better lighting.
- Confirm your API key is saved in
Settings. - For barcode scans, confirm USDA lookup is configured.
- Repository: https://github.com/benevolentbandwidth/ultraprocessed
- License: LICENSE/LICENSE.md
- Technical documentation: documentation/README.md
- Non-Android architecture guide: documentation/00-android-app-guide.md