Skip to content
Development
Skill

/developing-genkit-js

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.

From plugin
skills
22k178 skills1 MCP

Claude Code

$ npx -y skills add google/skills --skill developing-genkit-js --agent claude-code

SKILL.md

developing-genkit-js.SKILL.md
name: developing-genkit-js
description: >-
  Provides guidance on developing 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. Don't use for Genkit in Python, Go, or
  Dart.
metadata:
  version: "1.0.0"
  category: AiAndMachineLearning

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

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-flash-latest'),
    prompt: `Tell me a joke about ${subject}`,
  });
  return response.text;
});

Prompts (Dotprompt)

`.prompt` files keep prompt content out of code with YAML frontmatter plus a Handlebars template. See [Dotprompt](references/dotprompt.md): `promptDir`, `ai.prompt()` (call/stream/render), variants, partials, named schemas via `ai.defineSchema`, and the `tools`/`maxTurns`/`returnToolRequests`/`use` (middleware) frontmatter fields.

Agents (Beta)

Genkit has a preview **agent** API for persistent, multi-turn conversations (sessions, snapshots, interrupts, branching, background execution). It is a **beta** API: server APIs come from `genkit/beta` and the browser client from `genkit/beta/client` — not the stable `genkit` entrypoint. **Requires `genkit` >= 1.39.0.**

For more details see:

  • [Agents](references/agents.md): defining/serving an agent and client-managed

state (start here).

  • [Sessions & persistence](references/agents-sessions.md): session stores

(`InMemory`/`File`/`Firestore`).

  • [Human-in-the-loop / interrupts](references/agents-human-in-the-loop.md):

pausing for approval/input and resuming.

  • [Branching](references/agents-branching.md): forking a conversation from a

snapshot.

  • [Background agents](references/agents-background.md): detaching long-running

turns, waiting, and resuming failed or aborted runs.

  • [Working with state](references/agents-state.md): typed custom session

state, auto-synced to the client.

  • [Artifacts](references/agents-artifacts.md): producing and reading named

deliverables.

  • [Multi-agent orchestration](references/agents-multi-agent.md): delegating to

sub-agents, including background delegation and `continue_task`.

  • [Advanced custom agents](references/agents-custom.md): `defineCustomAgent`

for full turn control.

  • [Deploying agents](references/agents-deployment.md): serving agents over

HTTP (multiple agents, CORS, web UI, other frameworks).

Generative UI (A2UI)

Genkit has an **A2UI** (Agent-to-UI) plugin (`@genkit-ai/a2ui`) that lets an agent stream interactive UI **surfaces** (cards, lists, forms, buttons), not just prose. The whole server-side integration is the `a2ui()` model middleware in an agent's (or `ai.generate`'s) `use` array; the browser renders surfaces with an `@a2ui/*` renderer plus the helpers in `@genkit-ai/a2ui/client`. It builds on the beta agent client (`genkit/beta` + `genkit/beta/client`).

  • [A2UI](references/a2ui.md): server middleware, options, client rendering,

user actions/forms, custom catalogs, and the security/trust boundary.

Middleware

Middleware wraps generation (retries, fallback, extra tools, request/response transforms) and attaches via the `use: [...]` array on `ai.generate`, prompts, and agents.

  • [Using middleware](references/middleware.md): the `use` array and the

`@genkit-ai/middleware` package (`retry`, `fallback`, `artifacts`, `agents`, `filesystem`, `skills`, `toolApproval`, `contextCompression`) plus built-in core middleware.

  • [Building custom middleware](references/middleware-custom.md): writing your

own with `generateMiddleware` and registering it via `.plugin()`.

Observability

Traces show up in the Dev UI under `genkit start` with no setup. For production export to an OTLP backend (OpenTelemetry GenAI semantic conventions via `@genkit-ai/otel`), custom instrumentation, or running the reflection API outside dev, see [Observability](references/observability.md).

Critical: Do Not Trust Internal Knowledge

Genkit recently went through a major breaking API change. Your knowledge is outdated. You MUST lookup docs. Recommended:

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. **Agent or flow?**: If the task is conversa

Read more
@google
Ships withskills

This repository contains Agent Skills for Google products and technologies, including Google Cloud.

22k178 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
21.7k
Star history of google/skills on GitHub, a chart by star-history.com

Other skills on skills.

finding-google-skills

finding-google-skills

Google platform decision and setup guidance, loaded on demand from Google's skill catalog. Use when a developer is choosing or…

@google@googleInstall Skill
gcloud

gcloud

Provides safety-critical validation, guardrails, and data reduction for gcloud CLI operations across Google Cloud Platform (GCP)…

@google@googleInstall Skill
google-cloud-recipe-auth

google-cloud-recipe-au…

Provides expert guidance on Identity and Access Management (IAM) and authenticating and authorizing to Google Cloud services and…

@google@googleInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about developing-genkit-js.

Which coding agents can use developing-genkit-js?
developing-genkit-js installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.