Kitchen Brain — pantry-aware companion to Mealie (embedding matcher + makeable-now + expiry ranking). Built with Claude.
Find a file
xenarathon 9b9b090c28
All checks were successful
build / build (push) Successful in 13s
docs(auto-grow): Phase 2 complete (SearXNG + discovery deployed)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 17:13:36 -04:00
.claude Initial design: Kitchen Brain — pantry-aware companion to Mealie 2026-06-30 22:51:15 -04:00
.forgejo/workflows ci(kitchen-match): Dockerfile + Forgejo build workflow (T10) 2026-07-07 21:36:20 -04:00
docs docs: fold /grill-me phase decisions into merged design 2026-07-07 18:00:43 -04:00
golden test(kitchen-match): retune to 0.78 after Grocy name cleanup (98%) 2026-07-08 11:27:29 -04:00
kitchen_match fix(auto-grow): live dry-run hardening — food-only surplus + skip non-recipe URLs 2026-07-08 17:08:20 -04:00
scripts test(kitchen-match): golden set + parity runner; threshold tuned to 0.80 (T13) 2026-07-08 11:22:30 -04:00
specs docs(auto-grow): Phase 2 complete (SearXNG + discovery deployed) 2026-07-08 17:13:36 -04:00
tests fix(auto-grow): live dry-run hardening — food-only surplus + skip non-recipe URLs 2026-07-08 17:08:20 -04:00
.dockerignore ci(kitchen-match): Dockerfile + Forgejo build workflow (T10) 2026-07-07 21:36:20 -04:00
.gitignore docs(auto-grow): PR-A done (seed 46/51, library 56); flag orgURL-dedup for PR-B 2026-07-08 15:41:55 -04:00
Dockerfile ci(kitchen-match): Dockerfile + Forgejo build workflow (T10) 2026-07-07 21:36:20 -04:00
LICENSE Initial design: Kitchen Brain — pantry-aware companion to Mealie 2026-06-30 22:51:15 -04:00
map-review.md chore(kitchen-match): map APPLIED to Grocy — 56 links + 3 new Mealie foods 2026-07-08 11:12:06 -04:00
map-review.yaml chore(kitchen-match): map APPLIED to Grocy — 56 links + 3 new Mealie foods 2026-07-08 11:12:06 -04:00
pyproject.toml chore(kitchen-match): scaffold Python project (pyproject, package, tests) 2026-07-07 21:22:08 -04:00
README.md docs: mark Phase 1 done + align roadmap to merged design phasing 2026-07-08 12:52:47 -04:00

Kitchen Brain 🍲

A pantry-aware intelligence layer for a self-hosted kitchen. Kitchen Brain looks at what's actually in your pantry and tells you what you can cook right now from the recipes you already keep — weighted toward using up food before it expires.

It is a companion to Mealie, not a replacement. Mealie stays your recipe library and UI; Kitchen Brain adds the thinking around it:

  • Makeable-now suggestions — ranks your recipes by what you can make from current stock, biased toward expiring ingredients ("cook the shakshuka tonight, the peppers are turning").
  • Auto-grow library — finds real, existing web recipes that fit your household and imports them into Mealie. It never invents recipes.
  • Smart ingredient matching — a small local-embedding matcher lines up free-text recipe ingredients ("2 cups heavy cream") with your actual inventory products, so the whole thing stays accurate without hand-mapping everything.
  • Reaches you where you already are — a Home Assistant dashboard, a nightly "what to cook" nudge, and a "what can I make right now?" voice query.

Under the hood it stands on tools you may already run — Grocy (inventory + its native recipe-fulfillment/Due-Score engine), Mealie (recipes), Home Assistant + Node-RED (delivery), and a local Ollama server (embeddings + structured extraction) — so nothing leaves your house and no cloud AI is required.

Design intent: start as thin services riding on those existing apps; grow into a standalone companion program over time. Mealie remains a first-class partner throughout.


How it fits together (plain-English tour)

Think of three cooperating jobs:

  1. The matcher learns the "shape" of each grocery item's name as a short numeric fingerprint (an embedding) and compares fingerprints to decide that "heavy cream" and your product "Heavy Whipping Cream" are the same thing — fuzzy matching without a big rulebook.
  2. The bridge copies each Mealie recipe's ingredient list over to Grocy (using the matcher to line ingredients up with your inventory), so Grocy — which already knows your stock and expiry dates — can score every recipe for "can I make this?" and "does this use up something expiring?"
  3. The messenger reads that ranked list and shows it on your kitchen dashboard, announces a suggestion each evening, and answers when you ask out loud.

A fourth job, auto-grow, periodically finds real recipes that suit your tastes and adds them to Mealie so the library keeps getting richer.

Roadmap

  • Phase 1 — Done. Local embedding matcher service (kitchen-match) + a canonical product↔ingredient map, with the two existing Grocy sync jobs migrated onto it. The shared foundation everything else builds on.
  • Phase 2 — Auto-grow. Batch-import a curated set of real web recipes into Mealie, so the library is rich enough for the makeable engine to be useful. Never invents recipes.
  • Phase 3 — Makeable-now. Feed Mealie's own Recipe Finder from live stock and publish a "what can I make right now" list to Home Assistant — no manual upkeep.
  • Phase 4 — Recipe bridge. Mirror recipes into Grocy so its Due-Score adds expiry-weighted "cook this first" ranking — the part Mealie deliberately won't build.
  • Phase 5 — Delivery. HA dashboard cards + a morning "what to cook / use up" nudge + a voice query, with optional confirm-first meal-plan write-back.
  • Phase 6 (later) — Easier Grocy stock/inventory upkeep (accuracy is what makes it useful).
  • Future — Extract into a standalone Kitchen Brain program that complements Mealie directly.

Setup and usage instructions live in the project wiki, not here.

License

GPL-3.0. Copyleft — share improvements forward.

A note on how this was built

Kitchen Brain is designed and built with the help of Claude (Anthropic's Claude Code, model Opus 4.8). Architecture decisions, research, and code are produced collaboratively; treat AI-authored parts with the usual review you'd give any contributor.