Inspiration
Every evening, families lose time to the same question: "What should we cook tonight?" It gets harder when one person has an allergy, someone is vegetarian, and the pantry is half empty. I wanted a voice assistant that handles this like a thoughtful family member: it knows what's in the kitchen, remembers everyone's needs, and keeps everyone safe.
What it does
Dinner Decider is a voice-first, Alexa+-style agent for family dinners. You ask "What's for dinner tonight?" and it:
- Checks the pantry
- Looks up each family member's tastes, diet and allergies
- Filters out any meal that is unsafe for someone, such as a peanut allergy or a vegetarian diet
- Ranks the safe meals by how few ingredients are missing
- Recommends a meal in a short, spoken-style reply and says what you still need to buy
- Adds the missing items to the grocery list when you say "yes"
The Alexa+ experience is simulated in a web page, using the browser's speech recognition for input and speech synthesis for replies.
How I built it
- Agent: Strands Agents SDK, with the agent calling tools to reason and act instead of only chatting
- Model: a free Groq-hosted model (
openai/gpt-oss-20b) through an OpenAI-compatible API. The code can also use Amazon Bedrock through a setting, but the demo runs on Groq. - Tools:
get_pantry,get_family_preferences,suggest_meals,add_to_grocery_list,get_grocery_list - Backend: Python and Flask, with the pantry, family profiles and recipes in a JSON file
- Frontend: a single HTML page with a chat view, a microphone button, and live pantry and grocery panels
- Safety logic: allergy and diet filtering runs in code inside the
suggest_mealstool, so the model can't skip it - Built with AI assistance (Claude) for code generation and debugging.
Challenges I ran into
- Safety: An LLM shouldn't be the only thing deciding what is allergy-safe, so I moved that filtering into deterministic code the agent has to call.
- Voice-friendly replies: Long answers and markdown sound bad when read aloud, so I tuned the system prompt for short, natural, spoken-style responses.
- Cost and access: Setting up a paid cloud account wasn't possible for me, so I switched the agent to a free OpenAI-compatible model API. I also had to find a model name my free account could use with tool calling.
- Setup problems: Getting Python, packages and API keys working on my machine took real debugging time, so I kept the project small enough to finish in one day.
- Simulating Alexa+: With no physical device, I built a browser-based voice interface that mimics the flow.
Accomplishments that I'm proud of
- A complete working flow: ask, get a safe suggestion, say yes, and watch the grocery list update
- Allergy and diet protection built into the tool logic
- A natural voice experience in the browser with no extra hardware
- Going from idea to working demo in a single day, as a solo builder who was new to development
What I learned
- How to design an agent around tools with the Strands Agents SDK
- How to connect an agent to different model providers through one interface
- That safety-critical rules belong in code, and the model should handle conversation
- That designing for voice is different from designing for text
- How to debug environments, API keys and model access under time pressure
What's next for Dinner Decider
- Real Alexa+ integration as an Agent Skill or MCP-based experience
- Pantry tracking by scanning receipts or barcodes
- Ordering missing items through grocery delivery services
- Weekly meal planning, nutrition goals and leftovers tracking
- Support for regional Indian languages and cuisines
- Amazon Bedrock deployment for production use
Log in or sign up for Devpost to join the conversation.