Commands for persistent storage and filesystem state. For the concepts, see Data volumes and Snapshots and bases.

data

Manage persistent data volumes, snapshots, and backups
4kr data <command>
SubcommandDescription
listList data volumes
createCreate a new data volume
deleteDelete a data volume
attachAttach a data volume to a fork at a mount path
detachDetach a data volume from a fork
snapshotManage data volume snapshots
backupManage remote backups for a data volume
restoreRestore a data volume from a backup or query restore status
# Create a data volume and attach to a box
4kr data create my-data
4kr data attach my-data my-box --path /data

# Clone from an existing data volume snapshot
4kr data create copy --from my-data --from-snapshot backup1

# Detach (data is preserved)
4kr data detach my-data my-box

# Snapshot a data volume
4kr data snapshot create my-data backup1 -m "Before migration"
4kr data snapshot restore my-data backup1

# Remote backups
4kr data backup create my-data -m "nightly"
4kr data backup wait my-data bkp-20260101010101-ab12cd
4kr data restore my-data bkp-20260101010101-ab12cd
4kr data restore status my-data restore-20260101010101-ab12cd

list

List data volumes
4kr data list [options]
Argument / optionDescription
-a, --allInclude all projects.
-q, --quietPrint names only.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

create

Create a new data volume
4kr data create <NAME> [options]
Argument / optionDescription
<NAME>Name for the new data volume
--from <FROM_DATA>Source data volume to clone from (requires —from-snapshot)
--from-snapshot <FROM_SNAPSHOT>Source snapshot name (requires —from)
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

delete

Delete a data volume
4kr data delete <NAME> [options]
Argument / optionDescription
<NAME>Name.
-p, --project <PROJECT>Target project.

attach

Attach a data volume to a fork at a mount path
4kr data attach <DATA> <FORK> [options]
Argument / optionDescription
<DATA>Data volume name
<FORK>Fork to attach to
--path <PATH>Mount path inside the fork (must be absolute)
--read-onlyMount as read-only
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

detach

Detach a data volume from a fork
4kr data detach <DATA> <FORK> [options]
Argument / optionDescription
<DATA>Data volume name
<FORK>Fork to detach from
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

snapshot

Manage data volume snapshots
4kr data snapshot <command>
SubcommandDescription
listList snapshots of a data volume
createCreate a snapshot of a data volume
restoreRestore a data volume to a snapshot

list

List snapshots of a data volume
4kr data snapshot list <DATA> [options]
Argument / optionDescription
<DATA>Data volume name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

create

Create a snapshot of a data volume
4kr data snapshot create <DATA> [<NAME>] [options]
Argument / optionDescription
<DATA>Data volume to snapshot
<NAME>Snapshot name (auto-generated if omitted)
--name <NAME_FLAG>Snapshot name (flag form, overrides positional)
-m, --message <MESSAGE>Description for this snapshot
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

restore

Restore a data volume to a snapshot
4kr data snapshot restore <DATA> <SNAPSHOT> [options]
Argument / optionDescription
<DATA>Data volume name.
<SNAPSHOT>Snapshot name.
-p, --project <PROJECT>Target project.

backup

Manage remote backups for a data volume
4kr data backup <command>
SubcommandDescription
createCreate a backup and upload it to configured remote storage
listList backups for a data volume
showShow one backup
waitWait for a backup to reach a terminal state

create

Create a backup and upload it to configured remote storage
4kr data backup create <DATA> [<NAME>] [options]
Argument / optionDescription
<DATA>Data volume to back up
<NAME>Backup name (auto-generated if omitted)
--name <NAME_FLAG>Backup name (flag form, overrides positional)
-m, --message <MESSAGE>Description for this backup
--no-waitReturn without waiting for completion
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

list

List backups for a data volume
4kr data backup list <DATA> [options]
Argument / optionDescription
<DATA>Data volume name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

show

Show one backup
4kr data backup show <DATA> <BACKUP> [options]
Argument / optionDescription
<DATA>Data volume name.
<BACKUP>Backup name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

wait

Wait for a backup to reach a terminal state
4kr data backup wait <DATA> <BACKUP> [options]
Argument / optionDescription
<DATA>Data volume name.
<BACKUP>Backup name.
--timeout <TIMEOUT>Defaults to 900.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

restore

Restore a data volume from a backup or query restore status
4kr data restore <FIRST> <SECOND> [<THIRD>] [options]
Argument / optionDescription
<FIRST>Use one of: restore <data> <backup> restore status <data> <operation-id> (requires 3 positional args)
<SECOND>Backup name, or operation id when the first argument is status.
<THIRD>Operation id, when checking restore status.
--no-waitReturn without waiting for completion (only for restore start)
--timeout <TIMEOUT>Defaults to 900.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

snapshot

Capture and restore box root-filesystem checkpoints
4kr snapshot <command>
SubcommandDescription
listList snapshots for a fork
createCreate a snapshot of fork’s root filesystem
restoreRestore fork to a previous snapshot (destructive)
# Create a named snapshot
4kr snapshot create my-box v1 -m "Before upgrade"

# List snapshots
4kr snapshot list my-box

# Restore to a previous snapshot (destructive)
4kr snapshot restore my-box v1

list

List snapshots for a fork
4kr snapshot list <FORK> [options]
Argument / optionDescription
<FORK>Box ref.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

create

Create a snapshot of fork’s root filesystem
4kr snapshot create <FORK> [<NAME>] [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Snapshot name (auto-generated if omitted)
--name <NAME_FLAG>Snapshot name (flag form, overrides positional)
-m, --message <MESSAGE>Description for this snapshot
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

restore

Restore fork to a previous snapshot (destructive)
4kr snapshot restore <FORK> <SNAPSHOT> [options]
Argument / optionDescription
<FORK>Box ref.
<SNAPSHOT>Snapshot name.
-p, --project <PROJECT>Target project.

base

Manage base image templates
4kr base <command>
SubcommandDescription
listList available base images
showShow base versions and provenance
buildBuild a base from Dockerfile in current directory
saveSave a fork’s filesystem as a new base
importImport a tar.gz file as a base
# List available bases
4kr base list

# Show base versions and scripts
4kr base show box-base

# Build base from Dockerfile in current directory
4kr base build my-base

# Save a box filesystem as a new base
4kr base save my-base my-box

# Import a tarball as a base
4kr base import my-base --file rootfs.tar.gz --parent box-base

list

List available base images
4kr base list [options]
Argument / optionDescription
-j, --jsonPrint the JSON response.

show

Show base versions and provenance
4kr base show <NAME> [options]
Argument / optionDescription
<NAME>Name.
--tag <TAG>Base version tag.
-j, --jsonPrint the JSON response.

build

Build a base from Dockerfile in current directory
4kr base build <NAME> [options]
Argument / optionDescription
<NAME>Name.
-j, --jsonPrint the JSON response.

save

Save a fork’s filesystem as a new base
4kr base save <BASE> <FORK> [options]
Argument / optionDescription
<BASE>Base name.
<FORK>Box ref.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

import

Import a tar.gz file as a base
4kr base import <NAME> [options]
Argument / optionDescription
<NAME>Name for the new base
--file <FILE>Path to tar.gz file containing root filesystem
-p, --parent <PARENT>Parent base to layer on top of
-j, --jsonPrint the JSON response.

diff

Show filesystem changes in a box since a snapshot
4kr diff <command>
SubcommandDescription
statusShow summary of changed files
fileShow diff for a specific file
# Show changed files since last snapshot
4kr diff status my-box

# Compare against specific snapshot
4kr diff status my-box --against v1

# Show diff for a specific file
4kr diff file my-box /etc/config.json --against v1

status

Show summary of changed files
4kr diff status <FORK> [options]
Argument / optionDescription
<FORK>Box ref.
--against <AGAINST>Snapshot to compare against (default: most recent)
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

file

Show diff for a specific file
4kr diff file <FORK> <PATH> [options]
Argument / optionDescription
<FORK>Box ref.
<PATH>File path within the fork
--against <AGAINST>Snapshot to compare against (default: most recent)
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.