You're viewing the readable version of this site. The interactive extras (search, diagrams, read-aloud) need JavaScript and a current browser. Enable JavaScript; if it is already enabled, update your browser.

Open source · Gen AI SDKs

Genkit and Dotprompt

A source-linked record of the SDKs, language implementations, packages, build tooling, public adoption, and the work I led across Google's Genkit and Dotprompt repositories.

genkit, firebase-genkit, dotprompt, gen-ai, python, typescript, sdk-design, open-source

Genkit is Google's open-source framework for building AI-powered and agentic applications. Dotprompt is its language-neutral prompt-as-code substrate: executable .prompt files with typed metadata, templating, tools, and model configuration.

I helped architect Genkit's Python implementation from its first workspace, founded and hired the 13-engineer team that carried it through v0.5.0, and worked across the repository until February 2026. In Dotprompt, I built the Python, Go, Java, Rust, and Dart implementations; implemented Handlebars for Rust-backed Python and pure Dart; productionized the existing TypeScript implementation; and built the Bazel and editor infrastructure around the multilingual system.

This page separates four things that are easy to blur: project reach, package downloads, public-source users, and my own contribution record. Names below are examples found in public source, not customer claims, partnership badges, or endorsements.

Evidence last verified: July 15, 2026. Registry figures carry their own measurement dates.

  • 910KDotprompt downloads in the past 30 days (npm, 910,321, 15 Jun–14 Jul 2026)
  • 11.4Kdotpromptz downloads in the past month (PyPI, 11,407 as of 15 Jul 2026)
  • 5,045Genkit core downloads in the past month (PyPI, as of 15 Jul 2026)
  • 16.6Kdownloads for the two Dart packages in 30 days (pub.dev, 8,286 dotprompt + 8,312 handlebars_dart, as of 15 Jul 2026)
  • 708authored commits across the two repositories (GitHub, 383 Genkit + 325 Dotprompt)
  • 372pull requests reviewed across the two repositories (GitHub, 286 Genkit + 86 Dotprompt)
Daily downloads of the Genkit Python core package over the six-month window exposed by the public pypistats API. The running figure is on the live pypistats page.

The work on one slide

  1. Reach · delivery · leadership

    Built and led Genkit Python; shipped Dotprompt across six runtimes with shared specifications, build rules, and editor tooling.

    910K
    Dotprompt downloads / 30 days
    5,045
    Genkit core downloads / month
    708
    authored commits across two repositories
    13
    engineers on the founding team
Genkit Python and Dotprompt in one slide. Adoption and contribution figures are dated and source-linked in the evidence record on this page.

The work, from the public record

The contribution counts come from the repositories' author and review indexes. The implementation claims point more narrowly to the first commits, merged pull requests, release records, or current source trees that carry the work.

Genkit Python

Architecture, implementation, team, and release

Genkit's layered SDK architecture. The Action/Flow/Registry substrate carries models, tools, prompts, retrieval, evaluation, and provider plugins; the user-facing API stays thin.

Dotprompt

Six runtimes, tooling, and hermetic builds

Dotprompt's multilingual fixed point

The implementations are not five unrelated ports. They converge on one shared file format and one executable specification: parse YAML frontmatter, render Handlebars templates, resolve partials and tools, and produce the same model request in every runtime. The spec/ fixtures are therefore the center of the system. Each language implementation is independently idiomatic, but it must agree on observable behavior.

Python could not use the usual LGPL-licensed pybars3 implementation inside an Apache-2.0 project, so the Python package binds the Apache-2.0 Rust Handlebars engine through PyO3. Dart lacked a suitable implementation, so the repository ships a pure-Dart Handlebars engine alongside Dotprompt itself. Java uses the JKnack engine; Go uses Raymond; Rust uses handlebars-rust. The format remains the invariant while the engine is an adapter.

Dotprompt's package boundary. Prompts remain data; each runtime parses the same format and delegates rendering to its language's Handlebars engine, while shared fixtures hold the results to one contract.

Packages and public registry signals

Download counts are shown only where a registry exposes a comparable public figure. They are not summed across npm, PyPI, pub.dev, Maven, crates.io, and the Go module proxy: those systems count different events. A source or release row without a download figure means exactly that—there is a verifiable artifact, but no defensible public usage count.

Genkit Python

Published packages built through v0.5.0

PackageCurrent public signal
genkitv0.7.0 · 5,045 downloads/month
genkit-plugin-anthropicv0.7.0 · 1,824 downloads/month
genkit-plugin-awsv0.5.0 · 24 downloads/month
genkit-plugin-compat-oaiv0.7.0 · 2,101 downloads/month
genkit-plugin-dev-local-vectorstorev0.5.1 · eight releases
genkit-plugin-evaluatorsv0.7.0 · 144 downloads/month
genkit-plugin-firebasev0.5.1 · 82 downloads/month
genkit-plugin-flaskv0.7.0 · 138 downloads/month
genkit-plugin-google-cloudv0.7.0 · eight releases
genkit-plugin-google-genaiv0.7.0 · 2,520 downloads/month
genkit-plugin-ollamav0.7.0 · 282 downloads/month
genkit-plugin-vertex-aiv0.7.0 · 1,816 downloads/month

The v0.5.0 tree also carried provider packages that did not leave a current, independently measurable PyPI record. They still belong in the implementation record, but not in a download total.

PackageRelease evidence
genkit-plugin-aws-bedrockv0.5.0 source package
genkit-plugin-azurev0.5.0 source package
genkit-plugin-cf-ai / genkit-plugin-cfCloudflare provider packages in v0.5.0
genkit-plugin-deepseekv0.5.0 source package
genkit-plugin-huggingfacev0.5.0 source package
genkit-plugin-mcpv0.5.0 source package
genkit-plugin-mistralv0.5.0 source package
genkit-plugin-msfoundryv0.5.0 source package
genkit-plugin-observabilityv0.5.0 source package
genkit-plugin-xaiv0.5.0 source package

Dotprompt

Registry packages and language modules

Package or moduleCurrent public signal
dotprompt (TypeScript)v1.1.2 · 910,321 npm downloads in 30 days
dotpromptz (Python)v0.1.5 · 11,407 PyPI downloads/month
dotpromptz-handlebars (Python/Rust)v0.1.8 · five PyPI releases
github.com/google/dotprompt/gov0.2.1 tag; Go proxy resolves the module
com.google.dotprompt:dotprompt (Java)v0.1.0 release tag and Maven publication target
dotprompt (Rust)v0.1.0 release tag; crate source
dotprompt (Dart)v0.0.1 · 8,286 pub.dev downloads/30 days
handlebars_dartv0.0.1 · 8,312 pub.dev downloads/30 days

Tooling around the format

A portable format needs more than parsers. It needs hermetic builds, syntax support, language servers, formatters, and release paths that make each implementation ordinary to use in its own ecosystem.

The two largest Bazel efforts are rules_dart and rules_flutter: toolchain resolution, persistent workers, remote-build execution, IDE aspects, Gazelle integration, application packaging, and version-conflict detection. Smaller adapters make the shared Vitest, Java, and Rust suites participate in the same hermetic build graph. Promptly then carries the format in the other direction, from the build into the editor: lint, format, test, publish, and language-server operations over .prompt files.

Public-source use of Genkit Python

GitHub's code index returned dozens of independent public repositories containing source-level Genkit Python imports after excluding the Genkit organization, the author's own repositories, vendored virtual environments, and repository forks. Search indexes are incomplete and public code is not proof of production deployment, so the table is a representative, manually checked subset rather than a claim about total users.

Independent projects

Applications with pinned source-level imports

Reference and teaching projects

Framework integration, patterns, and course material

ProjectEvidence
Genkit samples — official Flask, FastAPI, and Django quickstartsthree Python web-framework integrations
Agentic UX Patternsstreaming chat, multi-tenant keys, and streaming progress with FastAPI
AI Agent Development Coursecourse agent built with Genkit Python

What the numbers do and do not say

Dotprompt's TypeScript package is the mature distribution channel; its npm traffic is two orders of magnitude larger than the younger Python core. Genkit Python, Dotprompt's new runtime packages, and the editor/Bazel work are earlier on the adoption curve. The useful evidence today is therefore mixed: registry downloads for established packages, release and source records for new ones, and pinned imports for public applications.

The stars and forks on the shared Genkit and Dotprompt repositories describe the whole multi-language projects. They should not be relabeled as Python-only adoption. The same restraint applies to Google's statement that Genkit is used in production: the public source does not establish that those production workloads use the Python SDK.

—-

For the mechanism beneath the adoption record, Everything Is an Action dissects Genkit's architecture from source. If a public Genkit Python or Dotprompt use is missing here, I'd be glad to hear about it.