froglet.
Concepts

Templates

A rootfs image. Sandboxes boot from a template.

Every workspace gets the stock public ubuntu-24.04 template for free. You can build your own from any Docker image with the builds command group.

Visibility

  • Workspace-private (default for new builds) — only this workspace can boot from it.
  • Public — every workspace on the platform can use it. templates publish <slug> makes it public; unpublish reverts.

The stock ubuntu-24.04 is always public.

Build from Docker

$ froglet builds new ghcr.io/acme/app:1.2 --name acme-app --slug acme-app
queued build acme-app (4f1708a9-…)

Build runs on the workspace's dedicated builder host. The CLI doesn't stream the log; use builds log-url <id> to get the SSE URL and pipe through curl -N. See CLI · templates for the full flow.

StateMeaning
pendingQueued, waiting for the builder host.
buildingRunning inside the builder.
doneBuild finished; template row creation in progress. Usually transient.
readyTemplate is usable in sb new --template ….
errorBuild failed. Check log-url for the SSE history.

Private registries

Pass --user and --pass to builds new:

froglet builds new private-registry.example.com/team/app:v1 \
  --name our-app --user "$REG_USER" --pass "$REG_PASS"

Public images (Docker Hub, GHCR public, ECR public) work without auth.

Versioning

Templates are identified by (workspace_id, slug). Re-running builds new --slug existing-slug replaces the rootfs in place — old sandboxes booted from the previous version are unaffected, but new sb new calls pick up the latest.

CLI / SDK

templates and builds on the CLI; templates.* and templateBuilds.* on the TypeScript SDK.