froglet.
Concepts

Volumes

Persistent storage that outlives sandboxes. Created once, mounted into one or more sandboxes at a path you pick.

Lifecycle

  1. Create. vol new <name> --size-gb <gb>. Storage is allocated and the volume row is ready immediately.
  2. Attach. vol attach --volume <id> --sandbox <id> --mount-path <path> [--mode rw|ro]. Mount point is per-sandbox — you can mount the same volume at /data on one sandbox and /shared on another.
  3. Use. Anything you write inside the mount path persists.
  4. Detach. vol detach --volume <id> --sandbox <id>. Sandbox keeps running, volume keeps the data.
  5. Destroy. vol rm <full-uuid>. Final.

Boot a sandbox with a volume already mounted

froglet sb new --template ubuntu-24.04 --size s --name worker \
  --volume 3ff092d9-…:/data:rw

--volume is repeatable for multiple mounts.

Modes

  • rw (default) — read-write. Only one sandbox can have it mounted rw at a time.
  • ro — read-only. Multiple sandboxes can share an ro mount of the same volume concurrently.

vol search <volume-id> <query> runs ripgrep server-side against the volume contents. Useful for finding files across a big shared volume without mounting it.

Currently returns 503 not_configured on prod — the API process is missing FROGLET_VOLUMED_URL / FROGLET_VOLUMED_AUTH_TOKEN. Operator-side fix.

CLI / SDK

See CLI · volumes and volumes.* on the TypeScript SDK. Body fields are snake_case server-side (size_gb, volume_id, mount_path) — both clients submit them correctly.