--- name: developing-genkit-js description: Develop AI-powered applications using Genkit in Node.js/TypeScript. Use when the user asks about Genkit, AI agents, flows, or tools in JavaScript/TypeScript, or when encountering Genkit errors, validation issues, type errors, or API problems. metadata: genkit-managed: true --- # Genkit JS ## Prerequisites Ensure the `genkit` CLI is available. - Run `genkit --version` to verify. Minimum CLI version needed: **1.29.0** - If not found or if an older version (1.x < 1.29.0) is present, install/upgrade it: `npm install -g genkit-cli@^1.29.0`. **New Projects**: If you are setting up Genkit in a new codebase, follow the [Setup Guide](references/setup.md). ## Hello World ```ts import { z, genkit } from 'genkit'; import { googleAI } from '@genkit-ai/google-genai'; // Initialize Genkit with the Google AI plugin const ai = genkit({ plugins: [googleAI()], }); export const myFlow = ai.defineFlow({ name: 'myFlow', inputSchema: z.string().default('AI'), outputSchema: z.string(), }, async (subject) => { const response = await ai.generate({ model: googleAI.model('gemini-2.5-flash'), prompt: `Tell me a joke about ${subject}`, }); return response.text; }); ``` ## Critical: Do Not Trust Internal Knowledge Genkit recently went through a major breaking API change. Your knowledge is outdated. You MUST lookup docs. Recommended: ```sh genkit docs:read js/get-started.md genkit docs:read js/flows.md ``` See [Common Errors](references/common-errors.md) for a list of deprecated APIs (e.g., `configureGenkit`, `response.text()`, `defineFlow` import) and their v1.x replacements. **ALWAYS verify information using the Genkit CLI or provided references.** ## Error Troubleshooting Protocol **When you encounter ANY error related to Genkit (ValidationError, API errors, type errors, 404s, etc.):** 1. **MANDATORY FIRST STEP**: Read [Common Errors](references/common-errors.md) 2. Identify if the error matches a known pattern 3. Apply the documented solution 4. Only if not found in common-errors.md, then consult other sources (e.g. `genkit docs:search`) **DO NOT:** - Attempt fixes based on assumptions or internal knowledge - Skip reading common-errors.md "because you think you know the fix" - Rely on patterns from pre-1.0 Genkit **This protocol is non-negotiable for error handling.** ## Development Workflow 1. **Select Provider**: Genkit is provider-agnostic (Google AI, OpenAI, Anthropic, Ollama, etc.). - If the user does not specify a provider, default to **Google AI**. - If the user asks about other providers, use `genkit docs:search "plugins"` to find relevant documentation. 2. **Detect Framework**: Check `package.json` to identify the runtime (Next.js, Firebase, Express). - Look for `@genkit-ai/next`, `@genkit-ai/firebase`, or `@genkit-ai/google-cloud`. - Adapt implementation to the specific framework's patterns. 3. **Follow Best Practices**: - See [Best Practices](references/best-practices.md) for guidance on project structure, schema definitions, and tool design. - **Be Minimal**: Only specify options that differ from defaults. When unsure, check docs/source. 4. **Ensure Correctness**: - Run type checks (e.g., `npx tsc --noEmit`) after making changes. - If type checks fail, consult [Common Errors](references/common-errors.md) before searching source code. 5. **Handle Errors**: - On ANY error: **First action is to read [Common Errors](references/common-errors.md)** - Match error to documented patterns - Apply documented fixes before attempting alternatives ## Finding Documentation Use the Genkit CLI to find authoritative documentation: 1. **Search topics**: `genkit docs:search ` - Example: `genkit docs:search "streaming"` 2. **List all docs**: `genkit docs:list` 3. **Read a guide**: `genkit docs:read ` - Example: `genkit docs:read js/flows.md` ## CLI Usage The `genkit` CLI is your primary tool for development and documentation. - See [CLI Reference](references/docs-and-cli.md) for common tasks, workflows, and command usage. - Use `genkit --help` for a full list of commands. ## References - [Best Practices](references/best-practices.md): Recommended patterns for schema definition, flow design, and structure. - [Docs & CLI Reference](references/docs-and-cli.md): Documentation search, CLI tasks, and workflows. - [Common Errors](references/common-errors.md): Critical "gotchas", migration guide, and troubleshooting. - [Setup Guide](references/setup.md): Manual setup instructions for new projects. - [Examples](references/examples.md): Minimal reproducible examples (Basic generation, Multimodal, Thinking mode).