A cooking assistant that turns what you have in the kitchen into realistic recipes and keeps the conversation going.
Chef Jed is a React chat app backed by an Express API. It streams recipe responses from Hugging Face, detects cooking intent, and can research named dishes before answering.
Live demo: chef-jed-beta.vercel.app
Frontend: React, Vite, Tailwind CSS, Framer Motion, GSAP
Backend: Express
AI: Hugging Face Inference, Firecrawl (recipe research)
- Ingredient-based recipe generation with streaming responses
- Follow-up chat for substitutions, technique questions, and recipe tweaks
- Intent detection that keeps the assistant focused on cooking
- Optional recipe research for named dishes
- Conversation history and feedback stored in the browser
- iMessage-style chat UI with motion and glass surfaces
- Node.js 20+
- npm
- Hugging Face access token
git clone https://github.com/jvchi/chef-jed.git
cd chef-jed
npm installCreate a .env file in the project root:
HF_ACCESS_TOKEN=your_huggingface_token
FIRECRAWL_API_KEY=optional_for_recipe_research
PORT=3001
Run the API and frontend in separate terminals:
npm run server
npm run devOpen http://localhost:5173. The Vite dev server proxies /api to the Express server on port 3001.
npm run build
npm run preview
npm testNote
Recipe research for named dishes requires FIRECRAWL_API_KEY. Without it, the app can still generate recipes from ingredients.
Important
HF_ACCESS_TOKEN is required for any in-scope cooking response. Requests are rejected if the token is missing.
src/
components/ # chat UI, recipe cards, history, navbar
lib/ # scroll helpers and shared utilities
api/
chefLogic.js # intent detection, prompts, recipe research
recipe.js # serverless recipe handler
server.js # local Express API with SSE streaming