Volumes
Named folders that carry data between sessions.
Volumes are named, manifest-backed folders for moving data between sessions — checkpoints from a training session into an eval session, a job's outputs back to your laptop. They are not attached disks and reserve no block storage: file bytes live in the shared content-addressed blob store, and the volume records the path → blob manifest.
Commands
| Command | Description |
|---|---|
super volume create <name> | Create an empty volume |
super volume list | List your volumes |
super volume files <name> [path] | List files in a volume |
super volume download <name> <vol-path> [local] [-r] | Fetch a file (or, with -r, a directory) |
super volume cat <name> <vol-path> | Print a volume file to stdout |
super volume delete <name> | Delete a volume and its manifest |
super volume import <name> <sid> [session-path] [vol-path] | Copy a folder from a stopped session into a volume |
Reads need no session and no host — files/download/cat serve the
committed manifest straight from the API, which is how you get a
job's outputs back.
Mounting into a session
Attach with repeatable --volume flags on exec, run, shell, spawn,
job run, and map:
super exec --volume checkpoints:/workspace/ckpt --sku gpu_1x_l4 python train.py--volume NAME mounts at /workspace/NAME; --volume NAME:/absolute/path
mounts at that path. Inside the session a volume is just an ordinary directory
— use normal file I/O. Writes land in a writable overlay and are committed
back as a new volume version when the session detaches or closes (the commit
can trail close by ~30s).
Several sessions may attach the same volume at once (for example super map
tasks sharing one volume): each session's close commits the files it touched,
merged per path, and the last writer wins per file — concurrent appends to the
same file do not merge. super volume files shows the last committed version,
which can lag what a live session sees; only import and delete return a
conflict while a session has the volume attached. Mount onto an empty path —
attaching over existing session files is rejected rather than silently
shadowing them.
Volumes are not block devices: there's no /dev/* node, and mount/lsblk/
df inside the session won't show them. Don't try to mount, unmount, or
format anything — just read and write files.
End-to-end: carry results across sessions
# 1. Create the volume once.
super volume create runs
# 2. Run something that writes into the mounted volume.
super exec --volume runs:/workspace/runs --sku gpu_1x_l4 \
-- sh -lc 'python train.py && cp model.pt /workspace/runs/model.pt'
# 3. After the session closes, the file is committed to the volume.
super volume files runs # -> model.pt
# 4. A later session mounts the same volume and sees the file.
super exec --volume runs:/workspace/runs --sku gpu_1x_l4 \
-- ls -l /workspace/runs/model.pt
# 5. Or pull it back locally, no session needed.
super volume download runs model.ptImporting from a session
volume import copies a folder from a stopped session's finalized manifest
into a volume — a single batch metadata operation that copies no bytes for
blobs that already exist:
super stop s-abc123 --wait
super volume import checkpoints s-abc123 runs/run-42 run-42
super volume files checkpoints run-42Defaults in supercomputer.json
Declare volumes once to skip --volume on every command:
{ "sku": "gpu_1x_l4", "volumes": [{ "name": "checkpoints", "mount": "/workspace/checkpoints" }] }The effective set is the config volumes plus any --volume flags, keyed by
name; a --volume for a name already in the config re-maps its mount path for
that invocation. Attach is idempotent — re-passing an already-mounted volume is
a safe no-op, including across stop/resume on a fresh host.