Recipe Import

Create a new recipe with any AI (no connection needed)

Copy a prompt into ChatGPT, Claude, Gemini, or any other AI. It asks you a few clarifying questions, then returns a structured recipe you can paste back into Surprise Chef.

The Prompt

You are helping me build a SMART recipe for my "Surprise Chef" library. Smart recipes are the core feature — they include mise en place prep tasks, parallel workflow tracks, visual cues per step, and separate finish steps. Every recipe you generate should be smart. My starting request: [describe the recipe you want — e.g. 'chicken curry for 4, mild, weeknight'] MODE A — If my request includes a PHOTO of a printed recipe or cookbook page, use this FOUR-STEP process. Do NOT skip straight to JSON. STEP A1 — Read the photo and emit a "SOURCE VERBATIM" block. Produce a plain-text list of every ingredient and quantity EXACTLY as printed in the photo, in the photo's order. Use the photo's words. Include title, yield, and prep/cook times if visible. If you cannot read a word or a quantity, write [unclear] — DO NOT guess. DO NOT fall back to general knowledge of what this dish "usually" contains. If the photo is sideways or cropped, still only transcribe what you can actually see. STEP A2 — Ask me to verify. Present the SOURCE VERBATIM block and ask: "Does this match the photo? Correct anything I got wrong, or confirm and I'll continue." Then WAIT for my reply. Do not proceed to JSON yet. STEP A3 — Sanity check and ask for clarity. Once I confirm (or after I correct your list), review the verified recipe for things that don't make sense before generating JSON: - Cooking times or temperatures that look unsafe (undercooked protein, unsafe oil temps, missing critical time/temp) - **Orphaned ingredients** — every ingredient in the list MUST be used in at least one cooking step or finish step. If an ingredient is only prepared in mise_en_place (e.g. a sauce mixed and set aside) and never referenced in any cooking step afterwards, that's a source bug — flag it and propose where to insert it, don't silently ignore. - **Phantom ingredients** — every ingredient mentioned in a step's instruction text (e.g. "pour in the water", "season with salt") must also appear in the ingredients array with a matching id. If a step references an ingredient that isn't listed, add it to ingredients. - Missing obvious steps (preheating, draining, resting) - Quantities that seem off for the stated yield - Internally inconsistent quantities (ingredient list says X total but steps use X + Y) - Ambiguous phrasing ("season to taste", "a good glug") where the cook might want more specificity Ask me about any concerns in plain English. Don't silently correct — surface the issue so I decide. If everything makes sense, say "No concerns, generating the recipe" and proceed. STEP A4 — Generate the smart recipe JSON. Every ingredient in the JSON MUST match SOURCE VERBATIM (after my corrections). Every item in SOURCE VERBATIM MUST appear in the JSON ingredients. Mismatch = error; fix it before responding. Put any deviation or safety correction in transcription_notes with the reason ("Cook time on Step 3 tightened to ensure chicken reaches 74°C internal"). Saying "transcribed faithfully" when you deviated is a failing output. Mode A special: IF this conversation already had Mode B clarifying questions (protein / spice / time / servings) before you received the photo, DISCARD all Mode B assumptions and work only from the photo. The photo is authoritative. MODE B — If my request is descriptive (e.g. "a chicken curry for 4"): - Generate a complete smart recipe from scratch. - Use only ingredients I'd commonly have or that I've named. Don't hallucinate. - Clarifying questions: ask up to 5 in a SINGLE message (no follow-up rounds). Be selective — only ask what actually applies to this dish and hasn't already been answered: - Skip questions the request has already answered ("for 4" = don't ask servings; "mild" = don't ask spice). - Skip questions that don't fit the dish type. A dessert doesn't need a spice level. A smoothie doesn't need an effort rating. A salad doesn't need a protein type. - Candidate questions: servings · allergies or ingredients to avoid · flavour or spice preference · time budget · ingredients on hand or to use up. - If my request is already specific enough to need zero questions, skip them and go straight to the JSON. - Before writing JSON, sanity check the recipe: - Every ingredient in your list must be used in at least one cooking step or finish step (no orphaned ingredients). - Every ingredient mentioned in a step's instruction text must exist in the ingredients array with a matching id. - Timings make sense; no missing obvious steps (preheat, drain, rest); phrasing is specific (avoid "season to taste"). Ask a short follow-up if genuinely unsure. If everything makes sense, proceed to the JSON. After the Mode A / Mode B process is complete, respond with ONLY a single JSON code block — no other commentary, no surrounding text. Use exactly this schema: ```json { "title": "Short dish name", "description": "One sentence about what makes it appealing", "cuisine": "Italian / Thai / Australian / Fusion / etc.", "protein": "chicken | beef | lamb | pork | fish | tofu | eggs | none", "effort_level": "quick | medium | proper", "base_servings": 4, "prep_time_mins": 15, "cook_time_mins": 30, "total_active_mins": 25, "image_emoji": "🍝", "tags": ["dinner", "comfort"], "dietary_flags": ["vegetarian"], "equipment": ["large frypan", "wooden spoon"], "tracks": [ { "name": "Main", "description": "Primary component", "estimated_mins": 30 } ], "mise_en_place": [ { "id": "m1", "task": "Finely dice the brown onion", "estimated_mins": 2, "ingredient_ids": ["i2"] }, { "id": "m2", "task": "Crush 2 cloves of garlic", "estimated_mins": 1, "ingredient_ids": ["i3"] } ], "ingredients": [ { "id": "i1", "name": "olive oil", "quantity": 2, "unit": "tbsp" }, { "id": "i2", "name": "brown onion", "quantity": 1, "unit": "", "prep": "finely diced" }, { "id": "i3", "name": "garlic cloves", "quantity": 2, "unit": "", "prep": "crushed" } ], "steps": [ { "id": "s1", "order": 1, "title": "Sauté the onion", "track": "Main", "instruction": "Heat oil in a pan over medium heat, add onion and cook until translucent.", "cue": "Onion is soft and see-through, not browned", "time_type": "active", "timer_seconds": 300, "ingredient_ids": ["i1", "i2"], "parallel_hint": "Meanwhile, crush the garlic ready for the next step" } ], "finish_steps": [ { "id": "f1", "title": "Plate and garnish", "instruction": "Divide into 4 bowls. Top with chopped parsley and a squeeze of lemon.", "tip": "Warm the bowls briefly so the food doesn't cool fast" } ] } ``` Smart-recipe fields (required for Surprise Chef, this is the feature): - **tracks**: parallel workflow lanes. Default to MULTIPLE tracks whenever any step can happen at the same time as another step — for example, lettuce chilling in iced water while pork browns is two tracks ("Lettuce", "Filling"). Single-track only for genuinely sequential recipes (cookies, single-pan sautés). When in doubt, split. Multi-component dishes (salmon + broth + salad) always get one track per component. - **mise_en_place**: short prep tasks the cook does BEFORE turning on the heat — chopping, crushing, measuring. Each references ingredient_ids. Max ~2 min per task. - **finish_steps**: final plating / garnish / off-the-heat steps. Optional for simple dishes. - Each step's **track** must match a name in the tracks array. - **cue**: plain English, what the cook sees/smells/hears to know it's done. - **time_type**: "active" = hands on the pan, "passive" = waiting (oven, timer, rest). - **parallel_hint**: what the cook can do alongside this step. On a multi-track recipe, this should often point to a step on another track that can run concurrently ("While the pork browns, drain the chilled lettuce"). General rules: - effort_level: "quick" = under 20 min, "medium" = 20–45 min, "proper" = 45+ min - timer_seconds: only include when a step has a fixed duration - ingredient_ids: reference the "id" field of ingredients used in that step - Step titles: short action verbs ("Brown the mince", "Rest the meat") - Quantities are numbers, not strings - Australian measurements (tbsp, tsp, g, ml, cup) - Don't invent ingredients — if unsure, ask in the clarifying questions Also include an import_metadata object at the top level with your self-reported identity so cooks can see which AI built the recipe: ```json "import_metadata": { "ai_name": "<your model name and version, e.g. 'Claude Opus 4.6', 'ChatGPT 5 Thinking', 'Gemini 2.5 Pro'>", "share_url": "<optional — if you can share a conversation link, paste it here>" } ``` Be honest about your model name. If you don't know the exact version, use the family name ("Gemini", "Claude", "ChatGPT") rather than guessing a version number. Leave share_url out if you don't have a shareable conversation URL.

What it does

Works without connecting Surprise Chef to your AI. The prompt tells the AI to ask a few clarifying questions first (servings, allergies, time budget), then return a strict JSON recipe. Paste the JSON into your Surprise Chef kitchen and it lands as a structured recipe with ingredients, timed steps, and scaled quantities — same as an MCP-generated recipe.

Tools it uses

Behind the scenes, your AI calls these Surprise Chef MCP tools:

What you get back

A JSON recipe you paste into /dashboard/recipes/import. The AI will usually ask 3–5 questions first — answer them, then copy the final JSON code block back.

Variations

Use what I've got

You are helping me build a SMART recipe for my "Surprise Chef" library. Smart recipes are the core feature — they include mise en place prep tasks, parallel workflow tracks, visual cues per step, and separate finish steps. Every recipe you generate should be smart. My starting request: a dinner for 4 using only: [paste your pantry list or fridge contents] MODE A — If my request includes a PHOTO of a printed recipe or cookbook page, use this FOUR-STEP process. Do NOT skip straight to JSON. STEP A1 — Read the photo and emit a "SOURCE VERBATIM" block. Produce a plain-text list of every ingredient and quantity EXACTLY as printed in the photo, in the photo's order. Use the photo's words. Include title, yield, and prep/cook times if visible. If you cannot read a word or a quantity, write [unclear] — DO NOT guess. DO NOT fall back to general knowledge of what this dish "usually" contains. If the photo is sideways or cropped, still only transcribe what you can actually see. STEP A2 — Ask me to verify. Present the SOURCE VERBATIM block and ask: "Does this match the photo? Correct anything I got wrong, or confirm and I'll continue." Then WAIT for my reply. Do not proceed to JSON yet. STEP A3 — Sanity check and ask for clarity. Once I confirm (or after I correct your list), review the verified recipe for things that don't make sense before generating JSON: - Cooking times or temperatures that look unsafe (undercooked protein, unsafe oil temps, missing critical time/temp) - **Orphaned ingredients** — every ingredient in the list MUST be used in at least one cooking step or finish step. If an ingredient is only prepared in mise_en_place (e.g. a sauce mixed and set aside) and never referenced in any cooking step afterwards, that's a source bug — flag it and propose where to insert it, don't silently ignore. - **Phantom ingredients** — every ingredient mentioned in a step's instruction text (e.g. "pour in the water", "season with salt") must also appear in the ingredients array with a matching id. If a step references an ingredient that isn't listed, add it to ingredients. - Missing obvious steps (preheating, draining, resting) - Quantities that seem off for the stated yield - Internally inconsistent quantities (ingredient list says X total but steps use X + Y) - Ambiguous phrasing ("season to taste", "a good glug") where the cook might want more specificity Ask me about any concerns in plain English. Don't silently correct — surface the issue so I decide. If everything makes sense, say "No concerns, generating the recipe" and proceed. STEP A4 — Generate the smart recipe JSON. Every ingredient in the JSON MUST match SOURCE VERBATIM (after my corrections). Every item in SOURCE VERBATIM MUST appear in the JSON ingredients. Mismatch = error; fix it before responding. Put any deviation or safety correction in transcription_notes with the reason ("Cook time on Step 3 tightened to ensure chicken reaches 74°C internal"). Saying "transcribed faithfully" when you deviated is a failing output. Mode A special: IF this conversation already had Mode B clarifying questions (protein / spice / time / servings) before you received the photo, DISCARD all Mode B assumptions and work only from the photo. The photo is authoritative. MODE B — If my request is descriptive (e.g. "a chicken curry for 4"): - Generate a complete smart recipe from scratch. - Use only ingredients I'd commonly have or that I've named. Don't hallucinate. - Clarifying questions: ask up to 5 in a SINGLE message (no follow-up rounds). Be selective — only ask what actually applies to this dish and hasn't already been answered: - Skip questions the request has already answered ("for 4" = don't ask servings; "mild" = don't ask spice). - Skip questions that don't fit the dish type. A dessert doesn't need a spice level. A smoothie doesn't need an effort rating. A salad doesn't need a protein type. - Candidate questions: servings · allergies or ingredients to avoid · flavour or spice preference · time budget · ingredients on hand or to use up. - If my request is already specific enough to need zero questions, skip them and go straight to the JSON. - Before writing JSON, sanity check the recipe: - Every ingredient in your list must be used in at least one cooking step or finish step (no orphaned ingredients). - Every ingredient mentioned in a step's instruction text must exist in the ingredients array with a matching id. - Timings make sense; no missing obvious steps (preheat, drain, rest); phrasing is specific (avoid "season to taste"). Ask a short follow-up if genuinely unsure. If everything makes sense, proceed to the JSON. After the Mode A / Mode B process is complete, respond with ONLY a single JSON code block — no other commentary, no surrounding text. Use exactly this schema: ```json { "title": "Short dish name", "description": "One sentence about what makes it appealing", "cuisine": "Italian / Thai / Australian / Fusion / etc.", "protein": "chicken | beef | lamb | pork | fish | tofu | eggs | none", "effort_level": "quick | medium | proper", "base_servings": 4, "prep_time_mins": 15, "cook_time_mins": 30, "total_active_mins": 25, "image_emoji": "🍝", "tags": ["dinner", "comfort"], "dietary_flags": ["vegetarian"], "equipment": ["large frypan", "wooden spoon"], "tracks": [ { "name": "Main", "description": "Primary component", "estimated_mins": 30 } ], "mise_en_place": [ { "id": "m1", "task": "Finely dice the brown onion", "estimated_mins": 2, "ingredient_ids": ["i2"] }, { "id": "m2", "task": "Crush 2 cloves of garlic", "estimated_mins": 1, "ingredient_ids": ["i3"] } ], "ingredients": [ { "id": "i1", "name": "olive oil", "quantity": 2, "unit": "tbsp" }, { "id": "i2", "name": "brown onion", "quantity": 1, "unit": "", "prep": "finely diced" }, { "id": "i3", "name": "garlic cloves", "quantity": 2, "unit": "", "prep": "crushed" } ], "steps": [ { "id": "s1", "order": 1, "title": "Sauté the onion", "track": "Main", "instruction": "Heat oil in a pan over medium heat, add onion and cook until translucent.", "cue": "Onion is soft and see-through, not browned", "time_type": "active", "timer_seconds": 300, "ingredient_ids": ["i1", "i2"], "parallel_hint": "Meanwhile, crush the garlic ready for the next step" } ], "finish_steps": [ { "id": "f1", "title": "Plate and garnish", "instruction": "Divide into 4 bowls. Top with chopped parsley and a squeeze of lemon.", "tip": "Warm the bowls briefly so the food doesn't cool fast" } ] } ``` Smart-recipe fields (required for Surprise Chef, this is the feature): - **tracks**: parallel workflow lanes. Default to MULTIPLE tracks whenever any step can happen at the same time as another step — for example, lettuce chilling in iced water while pork browns is two tracks ("Lettuce", "Filling"). Single-track only for genuinely sequential recipes (cookies, single-pan sautés). When in doubt, split. Multi-component dishes (salmon + broth + salad) always get one track per component. - **mise_en_place**: short prep tasks the cook does BEFORE turning on the heat — chopping, crushing, measuring. Each references ingredient_ids. Max ~2 min per task. - **finish_steps**: final plating / garnish / off-the-heat steps. Optional for simple dishes. - Each step's **track** must match a name in the tracks array. - **cue**: plain English, what the cook sees/smells/hears to know it's done. - **time_type**: "active" = hands on the pan, "passive" = waiting (oven, timer, rest). - **parallel_hint**: what the cook can do alongside this step. On a multi-track recipe, this should often point to a step on another track that can run concurrently ("While the pork browns, drain the chilled lettuce"). General rules: - effort_level: "quick" = under 20 min, "medium" = 20–45 min, "proper" = 45+ min - timer_seconds: only include when a step has a fixed duration - ingredient_ids: reference the "id" field of ingredients used in that step - Step titles: short action verbs ("Brown the mince", "Rest the meat") - Quantities are numbers, not strings - Australian measurements (tbsp, tsp, g, ml, cup) - Don't invent ingredients — if unsure, ask in the clarifying questions Also include an import_metadata object at the top level with your self-reported identity so cooks can see which AI built the recipe: ```json "import_metadata": { "ai_name": "<your model name and version, e.g. 'Claude Opus 4.6', 'ChatGPT 5 Thinking', 'Gemini 2.5 Pro'>", "share_url": "<optional — if you can share a conversation link, paste it here>" } ``` Be honest about your model name. If you don't know the exact version, use the family name ("Gemini", "Claude", "ChatGPT") rather than guessing a version number. Leave share_url out if you don't have a shareable conversation URL.

Kid-friendly

You are helping me build a SMART recipe for my "Surprise Chef" library. Smart recipes are the core feature — they include mise en place prep tasks, parallel workflow tracks, visual cues per step, and separate finish steps. Every recipe you generate should be smart. My starting request: a dinner everyone can eat including a picky toddler — mild, not too many textures, adults shouldn't feel like they're eating kids' food MODE A — If my request includes a PHOTO of a printed recipe or cookbook page, use this FOUR-STEP process. Do NOT skip straight to JSON. STEP A1 — Read the photo and emit a "SOURCE VERBATIM" block. Produce a plain-text list of every ingredient and quantity EXACTLY as printed in the photo, in the photo's order. Use the photo's words. Include title, yield, and prep/cook times if visible. If you cannot read a word or a quantity, write [unclear] — DO NOT guess. DO NOT fall back to general knowledge of what this dish "usually" contains. If the photo is sideways or cropped, still only transcribe what you can actually see. STEP A2 — Ask me to verify. Present the SOURCE VERBATIM block and ask: "Does this match the photo? Correct anything I got wrong, or confirm and I'll continue." Then WAIT for my reply. Do not proceed to JSON yet. STEP A3 — Sanity check and ask for clarity. Once I confirm (or after I correct your list), review the verified recipe for things that don't make sense before generating JSON: - Cooking times or temperatures that look unsafe (undercooked protein, unsafe oil temps, missing critical time/temp) - **Orphaned ingredients** — every ingredient in the list MUST be used in at least one cooking step or finish step. If an ingredient is only prepared in mise_en_place (e.g. a sauce mixed and set aside) and never referenced in any cooking step afterwards, that's a source bug — flag it and propose where to insert it, don't silently ignore. - **Phantom ingredients** — every ingredient mentioned in a step's instruction text (e.g. "pour in the water", "season with salt") must also appear in the ingredients array with a matching id. If a step references an ingredient that isn't listed, add it to ingredients. - Missing obvious steps (preheating, draining, resting) - Quantities that seem off for the stated yield - Internally inconsistent quantities (ingredient list says X total but steps use X + Y) - Ambiguous phrasing ("season to taste", "a good glug") where the cook might want more specificity Ask me about any concerns in plain English. Don't silently correct — surface the issue so I decide. If everything makes sense, say "No concerns, generating the recipe" and proceed. STEP A4 — Generate the smart recipe JSON. Every ingredient in the JSON MUST match SOURCE VERBATIM (after my corrections). Every item in SOURCE VERBATIM MUST appear in the JSON ingredients. Mismatch = error; fix it before responding. Put any deviation or safety correction in transcription_notes with the reason ("Cook time on Step 3 tightened to ensure chicken reaches 74°C internal"). Saying "transcribed faithfully" when you deviated is a failing output. Mode A special: IF this conversation already had Mode B clarifying questions (protein / spice / time / servings) before you received the photo, DISCARD all Mode B assumptions and work only from the photo. The photo is authoritative. MODE B — If my request is descriptive (e.g. "a chicken curry for 4"): - Generate a complete smart recipe from scratch. - Use only ingredients I'd commonly have or that I've named. Don't hallucinate. - Clarifying questions: ask up to 5 in a SINGLE message (no follow-up rounds). Be selective — only ask what actually applies to this dish and hasn't already been answered: - Skip questions the request has already answered ("for 4" = don't ask servings; "mild" = don't ask spice). - Skip questions that don't fit the dish type. A dessert doesn't need a spice level. A smoothie doesn't need an effort rating. A salad doesn't need a protein type. - Candidate questions: servings · allergies or ingredients to avoid · flavour or spice preference · time budget · ingredients on hand or to use up. - If my request is already specific enough to need zero questions, skip them and go straight to the JSON. - Before writing JSON, sanity check the recipe: - Every ingredient in your list must be used in at least one cooking step or finish step (no orphaned ingredients). - Every ingredient mentioned in a step's instruction text must exist in the ingredients array with a matching id. - Timings make sense; no missing obvious steps (preheat, drain, rest); phrasing is specific (avoid "season to taste"). Ask a short follow-up if genuinely unsure. If everything makes sense, proceed to the JSON. After the Mode A / Mode B process is complete, respond with ONLY a single JSON code block — no other commentary, no surrounding text. Use exactly this schema: ```json { "title": "Short dish name", "description": "One sentence about what makes it appealing", "cuisine": "Italian / Thai / Australian / Fusion / etc.", "protein": "chicken | beef | lamb | pork | fish | tofu | eggs | none", "effort_level": "quick | medium | proper", "base_servings": 4, "prep_time_mins": 15, "cook_time_mins": 30, "total_active_mins": 25, "image_emoji": "🍝", "tags": ["dinner", "comfort"], "dietary_flags": ["vegetarian"], "equipment": ["large frypan", "wooden spoon"], "tracks": [ { "name": "Main", "description": "Primary component", "estimated_mins": 30 } ], "mise_en_place": [ { "id": "m1", "task": "Finely dice the brown onion", "estimated_mins": 2, "ingredient_ids": ["i2"] }, { "id": "m2", "task": "Crush 2 cloves of garlic", "estimated_mins": 1, "ingredient_ids": ["i3"] } ], "ingredients": [ { "id": "i1", "name": "olive oil", "quantity": 2, "unit": "tbsp" }, { "id": "i2", "name": "brown onion", "quantity": 1, "unit": "", "prep": "finely diced" }, { "id": "i3", "name": "garlic cloves", "quantity": 2, "unit": "", "prep": "crushed" } ], "steps": [ { "id": "s1", "order": 1, "title": "Sauté the onion", "track": "Main", "instruction": "Heat oil in a pan over medium heat, add onion and cook until translucent.", "cue": "Onion is soft and see-through, not browned", "time_type": "active", "timer_seconds": 300, "ingredient_ids": ["i1", "i2"], "parallel_hint": "Meanwhile, crush the garlic ready for the next step" } ], "finish_steps": [ { "id": "f1", "title": "Plate and garnish", "instruction": "Divide into 4 bowls. Top with chopped parsley and a squeeze of lemon.", "tip": "Warm the bowls briefly so the food doesn't cool fast" } ] } ``` Smart-recipe fields (required for Surprise Chef, this is the feature): - **tracks**: parallel workflow lanes. Default to MULTIPLE tracks whenever any step can happen at the same time as another step — for example, lettuce chilling in iced water while pork browns is two tracks ("Lettuce", "Filling"). Single-track only for genuinely sequential recipes (cookies, single-pan sautés). When in doubt, split. Multi-component dishes (salmon + broth + salad) always get one track per component. - **mise_en_place**: short prep tasks the cook does BEFORE turning on the heat — chopping, crushing, measuring. Each references ingredient_ids. Max ~2 min per task. - **finish_steps**: final plating / garnish / off-the-heat steps. Optional for simple dishes. - Each step's **track** must match a name in the tracks array. - **cue**: plain English, what the cook sees/smells/hears to know it's done. - **time_type**: "active" = hands on the pan, "passive" = waiting (oven, timer, rest). - **parallel_hint**: what the cook can do alongside this step. On a multi-track recipe, this should often point to a step on another track that can run concurrently ("While the pork browns, drain the chilled lettuce"). General rules: - effort_level: "quick" = under 20 min, "medium" = 20–45 min, "proper" = 45+ min - timer_seconds: only include when a step has a fixed duration - ingredient_ids: reference the "id" field of ingredients used in that step - Step titles: short action verbs ("Brown the mince", "Rest the meat") - Quantities are numbers, not strings - Australian measurements (tbsp, tsp, g, ml, cup) - Don't invent ingredients — if unsure, ask in the clarifying questions Also include an import_metadata object at the top level with your self-reported identity so cooks can see which AI built the recipe: ```json "import_metadata": { "ai_name": "<your model name and version, e.g. 'Claude Opus 4.6', 'ChatGPT 5 Thinking', 'Gemini 2.5 Pro'>", "share_url": "<optional — if you can share a conversation link, paste it here>" } ``` Be honest about your model name. If you don't know the exact version, use the family name ("Gemini", "Claude", "ChatGPT") rather than guessing a version number. Leave share_url out if you don't have a shareable conversation URL.

More prompts

← Back to full library

Your AI kitchen brain

Connect Surprise Chef to your existing AI in under two minutes. Free, no per-token cost, works inside Claude / ChatGPT / any MCP client.

Get started free