Templates
The templates and builds command groups — the catalog plus the Docker → template pipeline.
templates
froglet templates ls froglet templates publish <slug> # make your template public to all workspaces froglet templates unpublish <slug> # back to workspace-private froglet templates rm <slug> # deletes DB row + R2 blob
Every workspace gets the stock public ubuntu-24.04 template for free. Custom templates come from builds new (below).
builds
Build a template from any Docker image. The build runs on the workspace's dedicated builder host.
froglet builds ls froglet builds new <image> --name <n> [--slug <s>] [--user u --pass p] froglet builds log-url <id>
Private registries: pass --user and --pass to builds new.
$ froglet builds new ghcr.io/acme/app:1.2 --name acme-app --slug acme-app queued build acme-app (4f1708a9-…) state pending logs froglet builds log-url 4f1708a9-…
The CLI doesn't stream logs itself — log-url returns the SSE URL you can hit with curl -N:
$ froglet builds log-url 4f1708a9-… | xargs curl -N -H "Authorization: Bearer $FROGLET_API_KEY" # (SSE stream of build logs)
When the build finishes:
$ froglet builds ls ID NAME STATE SOURCE CREATED 4f1708a9 acme-app ready image:ghcr.io/acme/app:1.2 2026-05-17T13:38:04Z $ froglet sb new --template acme-app --size s --name demo ✓ created demo · id …
Build states
| State | Meaning |
|---|---|
pending | Queued, waiting for the builder host. |
building | Running inside the builder. |
done | Build finished, template row creation in progress. Usually transient. |
ready | Template is usable in sb new --template …. |
error | Build failed. Check log-url for the SSE history. |
Gotchas
templates rm <slug>deletes the DB row and the R2 blob. There's no undo.templates publishmakes the template visible to every workspace on the platform.unpublishflips it back to workspace-private; existing sandboxes are unaffected either way.builds newaccepts public images (Docker Hub, GHCR, ECR public) without auth; for private registries,--user/--passare required.