
Developing Genkit Js
Ship typed Genkit flows, tools, and model calls in Node.js/TypeScript without relying on stale pre-break API mental models.
Overview
Developing Genkit JS is an agent skill for the Build phase that guides Node.js/TypeScript Genkit setup, flows, and troubleshooting with mandatory up-to-date doc reads.
Install
npx skills add https://github.com/firebase/agent-skills --skill developing-genkit-jsWhat is this skill?
- Requires verifying genkit CLI ≥1.29.0 via genkit --version before coding
- Documents a minimal defineFlow + googleAI generate hello-world pattern
- Forces doc lookup through genkit docs:read because post-break APIs invalidate prior training
- Points new repos to references/setup.md for greenfield Genkit bootstrap
- Covers validation, typing, and API error troubleshooting paths
- Minimum genkit CLI version 1.29.0
- References genkit docs:read for js/get-started.md and js/flows.md
Adoption & trust: 62.2k installs on skills.sh; 345 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want Genkit agents and flows in TypeScript but keep hitting wrong APIs, validation failures, or type errors because Genkit changed breaking semantics.
Who is it for?
Indie builders adding Gemini-backed flows, tools, or small agent features inside an existing Node/TS service.
Skip if: Teams who only need prompt tweaks in a no-code tool, or Python Genkit work—this skill is JS/TS and implementation-focused.
When should I use this skill?
User asks about Genkit, AI agents, flows, or tools in JavaScript/TypeScript, or reports Genkit errors, validation, types, or API problems.
What do I get? / Deliverables
You get CLI-verified setup, a working flow template, and doc-backed fixes aligned to current Genkit JS—not hallucinated pre-break patterns.
- Initialized Genkit app pattern
- defineFlow implementations with input/output schemas
- Doc-aligned fixes for Genkit runtime errors
Recommended Skills
Journey fit
Genkit work is implementation-time: wiring plugins, schemas, and flows into a runnable product. Agent-tooling is the canonical shelf because the skill centers on Genkit flows, tools, agents, and runtime AI plumbing—not generic UI or ops.
How it compares
Use instead of generic “build me an AI app” chat without pinning Genkit version, CLI checks, and official docs:read workflow.
Common Questions / FAQ
Who is developing-genkit-js for?
Solo and indie developers shipping AI-powered Node.js or TypeScript apps with Genkit who need flows, tools, plugins, and error-aware implementation help.
When should I use developing-genkit-js?
Use it during Build when you scaffold Genkit, define flows, integrate googleAI or other plugins, or debug validation and type errors—especially right after API changes.
Is developing-genkit-js safe to install?
Treat it like any third-party agent skill: review the Security Audits panel on this Prism page and restrict shell/network permissions in your environment before running npm global installs.
SKILL.md
READMESKILL.md - Developing Genkit Js
# 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 <query>` - Example: `genkit docs:search "streaming"` 2. **List all docs**: `genkit docs:list` 3. **Read a guide**: `genkit docs:read <path>` - Example: `genkit docs:read js/flows.md` ## CLI Usage The `genkit` CLI