DEV Community

Samrat
Samrat

Posted on

Cheomil: A Local AI Cooking Companion

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built Cheomil, a local AI cooking companion for a friend who wanted to know what they could cook with the ingredients already in their kitchen.

Unlike a generic recipe chatbot, Cheomil starts with a pantry containing actual quantities and units. My friend can ask “What can I make for lunch?” and receive suggestions with ingredient amounts and cooking steps.

After cooking, they review and confirm the quantities used before anything is deducted. Grocery purchases follow the same review-and-confirm process.

Chat supports follow-up questions, while New chat clears conversation memory without erasing the pantry. The goal is simple: help one person choose their next meal and keep track of what remains

DEMO

Code

Cheomil

Good food, already at home. A local-first cooking companion built for a friend who wants to turn the ingredients at home into meals, without losing track of what remains.

Run on Windows

Prerequisites: Node.js 24.12 or newer, Ollama, and the Gemma 3 4B model.

git clone https://github.com/MasterFloppa/Cheomil.git
Set-Location Cheomil
ollama pull gemma3:4b
npm start
Enter fullscreen mode Exit fullscreen mode

Open http://127.0.0.1:3000. Ollama must be running at http://127.0.0.1:11434.

The production app has no npm runtime dependencies. npm install is only required for the optional Edge browser test.

The everyday loop

  1. Enter the ingredients you have, including their quantities. Use g, ml, or pcs. Adding an existing ingredient tops up its stock.
  2. Ask a question such as "What can I make for lunch?" The local model proposes recipes with pantry ingredient references, quantities, serving counts, and cooking steps.
  3. Say "I cooked [dish name]" or…

How I Built It

Cheomil uses Gemma 3 4B, an open-weight model served locally through Ollama. It interprets cooking requests, generates recipes, and identifies previously suggested dishes.

The application uses a native Node.js server, SQLite, and vanilla JavaScript, with no npm runtime dependencies.

The key design decision is separating AI suggestions from inventory changes. Application code validates ingredient references and quantities, and the person confirms every cooking or restocking action.

One revealing edge case was a recipe treating 2 grams of onion as a meaningful ingredient. I added ingredient-specific quantity checks and explicit rejection of invalid drafts. These safeguards improve reliability but do not replace human judgment or food-safety checks.

I used GitHub Copilot CLI for implementation, debugging, and regression coverage.

Why Does Open Innovation Matter?

After downloading the model, Cheomil runs without an internet connection or cloud AI API key. Pantry and conversation data stay on the local machine.

Local inference avoids per-request API charges, although it still uses the computer’s processing power, memory, and electricity. CPU inference can also be slower than a hosted service.

The model and prompts can be changed without tying the application to one cloud provider. Gemma is open-weight, not fully open-source, and its terms apply; Ollama supplies the open-source runtime.

For a personal kitchen companion, local control is part of the product—not just a technical choice

Prize Categories

Best Use of Gemma: Gemma 3 4B powers local cooking-request interpretation and pantry-grounded recipe generation.

Best Use of GitHub Copilot: GitHub Copilot CLI assisted with implementation, debugging, and automated regression coverage

Top comments (0)