GemmaPod
Composable, portable AI agent capsules — built on Gemma 4, signed end-to-end, and runnable anywhere a browser is.
A GemmaPod is an AI agent treated as a thing — a single signed
.htmlcapsule (~960 KB) carrying its identity, persona, tools, and transport. Forge it once, then ship it: email it, drop it into a web page with one<script>tag, or host it on your own URL.
Pods are objects that live on your device, not in someone's cloud. When a visitor opens one, it reaches back over WebRTC to a model running on your machine. If you're offline, it falls back to a small Gemma 4 model running entirely in the visitor's own browser via WebGPU. No middle server. No proxy. No chat plaintext touching the cloud.
Composable. Transportable. Embeddable. Headless when you want it, batteries-included when you don't.
Six things to know
POD one signed .html capsule = one agent
├─ TOOLKIT build & sign: pod.toml + owner.key → agent.html
├─ HOST device runtime: registers pods, routes requests, owns memory
│ ├─ MODEL local LLM bridge (Ollama / OpenAI-compatible)
│ └─ BUS pod registry, event stream, conversation store
├─ SIGNAL WebRTC handshake relay (no chat plaintext crosses it)
├─ EMBED browser runtime: loads a pod inside any web page or email
└─ gemmapod the unified CLI — create, run, status, list, stopYou forge a Pod with the Toolkit, run it on your Host, expose it through Signal, and let other people Embed it. Same agent, many surfaces.
Why portable agents
Most "Gemma demo" projects end up as chatbots — useful, but the model is the whole product. GemmaPod inverts that: the model is the cheapest part of the system. The agent is the persona, the tools, the trust boundary, the conversation, the way it shows up on a page. We built the envelope around the model — a signed, transport-aware capsule you can actually hand to other people.
Examples of what a pod can be:
- A portable AI business card that runs your persona on your home machine, embeddable on anyone's site.
- A take-home product demo — a SaaS company emails a prospect a
.htmlthat explains the product and lets them kick the tires. - A restaurant or front-desk pod that takes orders and answers FAQs
with a real cart driven by
STATE_SNAPSHOTevents. - A negotiator that goes places for you, carrying a signed allow-list of tools it's allowed to call.
Five-minute tour
The Gemma 4 lineup, used intentionally
| Variant | Where it runs | Why |
|---|---|---|
| Gemma 4 E2B | Visitor's browser via transformers.js + WebGPU | ~1 GB at q4. The fallback that keeps the pod alive when the Host is offline. |
| Gemma 4 E4B | Owner's Host via Ollama | Primary path. Strong instruction following over a WebRTC data channel. |
| Gemma 4 31B Dense | Same Ollama endpoint, opt-in per request | "Heavy mode" for pods that need deeper reasoning. |
| Gemma 4 26B MoE | Optional sidecar | High-throughput batch tools (RAG, planning). |
Project status
GemmaPod ships seven npm packages under the @gemmapod scope, plus
Docker images for the Host and the signaling broker. v0.1 freezes the
public surface; minor bumps may still tweak APIs as the SDK settles.
Source on GitHub · Changelog · Security model · MIT licensed