+
+ );
+}
diff --git a/docs/content/docs/openui-lang/quickstart.mdx b/docs/content/docs/openui-lang/quickstart.mdx
index 7934e182b..e1b0ec369 100644
--- a/docs/content/docs/openui-lang/quickstart.mdx
+++ b/docs/content/docs/openui-lang/quickstart.mdx
@@ -1,99 +1,334 @@
---
title: Quick Start
-description: Bootstrap a GenUI chat app in under a minute.
+description: Build a Recipe Remix agent with OpenUI Cloud in about 10 minutes.
---
-
+import { CopyableDiff } from "@/components/copyable-diff";
-## Create the app
+Build a Recipe Remix agent that reads your pantry, searches for real recipes,
+finds an image, and renders the results as interactive Generative UI.
-```bash tab="pnpm" tab-group="pkg"
-pnpx @openuidev/cli@latest create --name genui-chat-app
-```
+
+
+The Cloud starter already includes streaming chat, conversation history, web
+search, image search, reports, presentations, and an example function tool.
+You will keep those features and add one tool and one component.
+
+You need Node.js 20 or later and a Thesys account.
-```bash tab="bun" tab-group="pkg"
-bunx @openuidev/cli@latest create --name genui-chat-app
+## 1. Create the app
+
+```bash
+npx @openuidev/cli@latest create \
+ --name recipe-remix \
+ --template openui-cloud
```
-```bash tab="yarn" tab-group="pkg"
-yarn dlx @openuidev/cli@latest create --name genui-chat-app
+Follow the prompts. The CLI signs you in, creates the project, installs its
+dependencies, starts the agent, and opens it in your browser. Open the generated
+`recipe-remix` folder in your editor for the next steps.
+
+## 2. Replace the starter prompts
+
+Open `src/lib/starters.tsx` and replace the existing `STARTERS` array with:
+
+```tsx
+export const STARTERS = [
+ {
+ displayText: "Cook from my pantry",
+ prompt: "What can I make for dinner with what I already have?",
+ icon: <>>,
+ },
+ {
+ displayText: "Find a high-protein dinner",
+ prompt: "What are three quick, high-protein vegetarian dinners I could make?",
+ icon: <>>,
+ },
+ {
+ displayText: "Remix a comfort food",
+ prompt: "Can you give me three lighter or quicker spins on mac and cheese?",
+ icon: <>>,
+ },
+];
```
-```bash tab="npm" tab-group="pkg"
-npx @openuidev/cli@latest create --name genui-chat-app
+Update these lines in `src/components/cloud-chat.tsx`:
+
+`}
+/>
+
+This removes the general-purpose prompt templates while keeping the three
+recipe starters.
+
+## 3. Add a pantry tool
+
+Create `src/lib/tools/get-recipe-profile.ts`:
+
+```ts
+export const getRecipeProfileTool = {
+ type: "function" as const,
+ name: "get_recipe_profile",
+ description:
+ "Read the cook's pantry and recipe preferences. Call this before recommending pantry recipes.",
+ parameters: {
+ type: "object",
+ properties: {},
+ required: [],
+ additionalProperties: false,
+ },
+ strict: true,
+};
+
+export async function executeGetRecipeProfile(): Promise {
+ return JSON.stringify({
+ pantry: ["black beans", "corn", "canned tomatoes", "rice", "cheddar"],
+ diet: "vegetarian",
+ cuisine: "American",
+ maxMinutes: 30,
+ servings: 2,
+ });
+}
```
-Then move into the project:
+Change the values in `executeGetRecipeProfile()` to match your kitchen.
-```bash
-cd genui-chat-app
+Open `src/app/api/chat/route.ts` and update the imports:
+
+
+
+Register the executor beside the existing weather tool:
+
+
+
+Then add its declaration to the existing `tools` array:
+
+
+
+The generated route already runs the tool loop. Adding the declaration and
+executor is enough.
+
+## 4. Add a recipe component
+
+Create `src/lib/recipe-library.tsx`:
+
+
-The generated app uses OpenAI by default, but works with any OpenAI-compatible provider (e.g., OpenRouter, Azure OpenAI, Anthropic via proxy).
+Generate the serializable component specification used by the API route:
```bash
-echo "OPENAI_API_KEY=sk-your-key-here" > .env
+npx @openuidev/cli@latest generate \
+ --spec src/lib/recipe-library.tsx \
+ --out src/lib/recipe-library-spec.json
```
-## Start the dev server
+Now update the imports in `src/app/api/chat/route.ts`:
-```bash tab="pnpm" tab-group="pkg"
-pnpm dev
-```
+
-```bash tab="bun" tab-group="pkg"
-bun dev
-```
+Below the imports, add:
-```bash tab="yarn" tab-group="pkg"
-yarn dev
+```ts
+const recipeInstructions = `
+You are a practical recipe remix assistant.
+Use web search before recommending recipes and include real source URLs.
+Use image search to include a relevant recipe image when available.
+For each recipe, set imageUrl to an HTTPS URL returned by image search when available.
+Call get_recipe_profile when the user asks what they can cook from their pantry.
+Use the profile's servings value for every recipe.
+Return exactly three concise recipes and clearly label substitutions.
+Render the final recipe recommendations using exactly one RecipeRemix component.
+Do not return recipe recommendations as a prose-only response.
+Never claim that a recipe is allergen-safe.
+`;
```
-```bash tab="npm" tab-group="pkg"
-npm run dev
-```
+Update the `instructions` field inside `createParams`:
-## What's included
+
-The CLI generates a Next.js app with everything wired up:
+Finally, update `src/components/cloud-chat.tsx`:
-```
-src/
- app/
- page.tsx # AgentInterface chat (thread history) with the built-in component library
- api/chat/
- route.ts # Backend route with OpenAI streaming + example tools
- library.ts # Re-exports openuiChatLibrary and openuiChatPromptOptions
- generated/
- system-prompt.txt # Generated for static or legacy prompt integrations
- system-prompt.spec.json # Generated library spec
-```
+
-- **`page.tsx`**: Renders the `AgentInterface` chat (an artifact chat surface with thread history) with `openuiChatLibrary` for Generative UI rendering. It provides an `llm` whose `send` posts messages to the route and whose `streamProtocol` is `openAIAdapter()`. Storage is optional — omit it and threads are kept in memory (wiped on reload).
-- **`route.ts`**: A backend API route that uses `generateSystemPrompt` with the generated spec, then streams the response from the LLM.
-- **`library.ts`**: Your component library entrypoint. The `openui generate` CLI reads this file to produce both the prompt and the library spec.
+Then update the `componentLibrary` prop:
-The `dev` and `build` scripts automatically regenerate both artifacts before starting. Use the emitted spec in your route:
+
-```json
-"generate:prompt": "openui generate src/library.ts --out src/generated/system-prompt.txt",
-"dev": "pnpm generate:prompt && next dev"
-```
+
+ `recipeLibrary` extends the built-in `chatLibrary`, so the existing inline components remain
+ available alongside `RecipeRemix`. Cloud's search tools and artifact renderers also remain
+ available. See [Extend a built-in library](/docs/openui-lang/overview#extend-a-built-in-library).
+
-```ts
-import { generateSystemPrompt, type LibrarySpec } from "@openuidev/lang-core";
-import librarySpec from "../../../generated/system-prompt.spec.json";
+## 5. Try it
-const systemPrompt = generateSystemPrompt({
- library: librarySpec as LibrarySpec,
-});
-```
+The agent is already running. Return to the browser and click **Cook from my
+pantry**. It should call your pantry tool, search for recipes, and render three
+recipe cards. Click **Remix this** to start a follow-up turn.
+
+## Next steps
+
+- [Add more tools](/docs/agent/core-concepts/tools)
+- [Define more components](/docs/openui-lang/defining-components)
+- [Add component interactions](/docs/openui-lang/interactivity)
diff --git a/docs/public/images/openui-lang/recipe-remix-quickstart.gif b/docs/public/images/openui-lang/recipe-remix-quickstart.gif
new file mode 100644
index 000000000..cc8dea351
Binary files /dev/null and b/docs/public/images/openui-lang/recipe-remix-quickstart.gif differ