GemmaPoddocs
Quickstart

Install

Pick the package that matches what you want to do — CLI, browser embed, server daemon, signaling broker.

Pick your package

GoalInstall
Build a .html pod from a pod.tomlnpm i -D @gemmapod/toolkit
Embed a pod on a website via <script><script src="https://cdn.jsdelivr.net/npm/@gemmapod/embed/dist/gemmapod-shim.iife.js">
Embed a pod from npm (Next.js / Vite / etc.)npm i @gemmapod/embed
Build your own React UI over the runtimenpm i @gemmapod/embed (use /runtime subpath)
Run a Host connecting to Ollamanpm i @gemmapod/host or docker run ghcr.io/gemmapod/host
Self-host the signaling broker + pod registrynpm i @gemmapod/signal or docker run ghcr.io/gemmapod/signal
Build a custom DARTC implementationnpm i @gemmapod/dartc
Build a custom verifier (Rust / Node)npm i @gemmapod/core

Requirements

  • Node 22+ for all server-side packages and the CLI. Older Node is unsupported (we use node:sqlite built-in).
  • pnpm 9+ is what the monorepo is developed on. npm and yarn also work for consumers.
  • Ollama with gemma4:e4b for the Host path. Not needed if you only plan to use the in-browser WebGPU fallback.
  • Rust stable + wasm32-unknown-unknown target + wasm-pack only if you're rebuilding the WASM core from source. The committed packages/core/pkg{,-node}/ artifacts work out of the box.

Pinning + Subresource Integrity (production)

When you embed via CDN, pin the version and add an SRI hash. @latest in production is how silent bumps eat afternoons.

curl -fsSL "https://cdn.jsdelivr.net/npm/@gemmapod/embed@0.1.0/dist/gemmapod-shim.iife.js" \
  | openssl dgst -sha384 -binary | openssl base64 -A
<script
  src="https://cdn.jsdelivr.net/npm/@gemmapod/embed@0.1.0/dist/gemmapod-shim.iife.js"
  integrity="sha384-PASTE_HASH_HERE"
  crossorigin="anonymous"
></script>

All @gemmapod/* packages publish to npm with sigstore provenance. You can verify any tarball came from this repo's CI without trusting npm:

npm audit signatures

Next