DEV Community

Jay Dosi
Jay Dosi

Posted on

Recipe Keeper: Turning Nani's Voice Memos into a 100% Local AI Cookbook

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

What I Built

Recipe Keeper is an application that turns rambling voice memos from home cooks into a clean, searchable, and printable family cookbook.

I built this for my grandmother (Nani). Like many experienced home cooks, her recipes live entirely in her head. She cooks by feel, describing measurements as "a fistful of jeera," "enough water to cover plus two fingers," or "a good dollop of ghee." Asking her to type out recipes is a non-starter, and generic recipe apps demand precise metrics she doesn't use.

This app solves that by letting her simply talk into her phone while cooking. We upload the audio, and the app transcribes and extracts the recipe while preserving her exact phrasing, highlighting estimated quantities, and saving all her tips and stories.

Demo

Since this is a 100% offline, privacy-first desktop application designed to protect family data, there is no hosted live demo. You can test and demo it locally on your own machine by checking out the GitHub repository below!

Code

Recipe Keeper

Turn a loved one's rambling voice memos about their cooking into a clean, searchable, printable family recipe book, entirely on a laptop, with no internet and no cloud.

Built for Nani, who cooks from memory.

Features

  • 100% Local: Uses open-weight models (faster-whisper, Ollama). No cloud APIs.
  • Fidelity First: Keeps the cook's original phrasing (e.g. "a fistful of jeera"). Approximations are flagged.
  • Exportable: Print a beautiful PDF cookbook, or export to Markdown/ZIP.

Quick Start

  1. Install Ollama and Python 3.10+.
  2. Run make setup (or bash scripts/setup.sh). This installs dependencies and pulls the default LLM model (qwen2.5:7b).
  3. Run make run to start the server.
  4. Visit http://127.0.0.1:8000.

Hardware & Model Swapping

  • 16GB+ RAM: The default qwen2.5:7b is excellent.
  • 8GB RAM: Change model: "qwen2.5:7b" to model: "llama3.2:3b" in config.yaml.
  • Whisper defaults to small.

Personalizing

Edit config.yaml to change the…

How I Built It

The stack is built entirely around 100% open-source, locally run AI:

  • Speech-to-Text: faster-whisper (running the open-weight Whisper small model) to handle multilingual offline transcription (e.g., mixing English and Hindi).
  • LLM Extraction: Ollama serving open-weight models (like qwen2.5:7b or llama3.2:3b for lower-RAM laptops).
  • Backend/Frontend: Python 3.10+, FastAPI, SQLite, and vanilla HTML/CSS/JS (no build steps).

The core of the project relies on heavily engineered prompts that enforce strict "fidelity rules" on the LLM. The agent is instructed to never invent ingredients, to map vague quantities to an approx_metric flagged strictly as an is_estimate, and to pull out exact quotes for an original_phrase field.

Why Does Open Innovation Matter?

Family voices, stories, and recipes are incredibly personal and intimate. A cloud-based solution would require uploading my grandmother's private voice memos to third-party servers and paying per minute for transcription/extraction.

Open-weight models make this project possible because they guarantee absolute privacy. The app runs completely offline, binding only to 127.0.0.1. It costs nothing to run, and because the weights are open, the app won't suddenly break when an API gets deprecated. It ensures this cookbook tool will work forever on a standard laptop.

My Agent Session

Prize Categories

  • Open-Source Innovation
  • Best Use of AI / Local Models

Top comments (0)