developing-genkit-go

Develop AI-powered applications using Genkit in Go. Use when the user asks to build AI features, agents, flows, or tools in Go using Genkit, or when working…

INSTALLATION
npx skills add https://github.com/firebase/agent-skills --skill developing-genkit-go
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Genkit Go

Genkit Go is an AI SDK for Go that provides generation, structured output, streaming, tool calling, prompts, and flows with a unified interface across model providers.

Hello World

package main

import (

	"context"

	"fmt"

	"log"

	"net/http"
"github.com/genkit-ai/genkit/go/ai"

"github.com/genkit-ai/genkit/go/genkit"

"github.com/genkit-ai/genkit/go/plugins/googlegenai"

"github.com/genkit-ai/genkit/go/plugins/server"

)

func main() {

ctx := context.Background()

g := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))

genkit.DefineFlow(g, "jokeFlow", func(ctx context.Context, topic string) (string, error) {

	return genkit.GenerateText(ctx, g,

		ai.WithModelName("googleai/gemini-flash-latest"),

		ai.WithPrompt("Tell me a joke about %s", topic),

	)

})

mux := http.NewServeMux()

for _, f := range genkit.ListFlows(g) {

	mux.HandleFunc("POST /"+f.Name(), genkit.Handler(f))

}

log.Fatal(server.Start(ctx, "127.0.0.1:8080", mux))

}

## Core Features

Load the appropriate reference based on what you need:

| Feature | Reference | When to load |

| --- | --- | --- |

| Initialization | [references/getting-started.md](references/getting-started.md) | Setting up `genkit.Init`, plugins, the `*Genkit` instance pattern |

| Generation | [references/generation.md](references/generation.md) | `Generate`, `GenerateText`, `GenerateData`, streaming, output formats |

| Prompts | [references/prompts.md](references/prompts.md) | `DefinePrompt`, `DefineDataPrompt`, `.prompt` files, schemas |

| Tools | [references/tools.md](references/tools.md) | `DefineTool`, tool interrupts, `RestartWith`/`RespondWith` |

| Middleware | [references/middleware.md](references/middleware.md) | `ai.Middleware`, `ai.WithUse`, `Hooks` (Generate/Model/Tool), built-ins (`Retry`, `Fallback`, `ToolApproval`, `Filesystem`, `Skills`) |

| Flows & HTTP | [references/flows-and-http.md](references/flows-and-http.md) | `DefineFlow`, `DefineStreamingFlow`, `genkit.Handler`, HTTP serving |

| Model Providers | [references/providers.md](references/providers.md) | Google AI, Vertex AI, Anthropic, OpenAI-compatible, Ollama setup |

## Genkit CLI

Check if installed: `genkit --version`

**Installation:**

curl -sL cli.genkit.dev | bash


**Key commands:**

Start app with Developer UI (tracing, flow testing) at http://localhost:4000

genkit start -- go run .

genkit start -o -- go run . # also opens browser

Run a flow directly from the CLI

genkit flow:run myFlow '{"data": "input"}'

genkit flow:run myFlow '{"data": "input"}' --stream # with streaming

genkit flow:run myFlow '{"data": "input"}' --wait # wait for completion

Look up Genkit documentation

genkit docs:search "streaming" go

genkit docs:list go

genkit docs:read go/flows.md

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card