Volumes
Persistent storage that outlives sandboxes. Created once, mounted into one or more sandboxes at a path you pick.
Lifecycle
- Create.
vol new <name> --size-gb <gb>. Storage is allocated and the volume row isreadyimmediately. - 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/dataon one sandbox and/sharedon another. - Use. Anything you write inside the mount path persists.
- Detach.
vol detach --volume <id> --sandbox <id>. Sandbox keeps running, volume keeps the data. - 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 mountedrwat a time.ro— read-only. Multiple sandboxes can share anromount of the same volume concurrently.
Server-side search
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.