smol CLI Reference

smol is one command line for machines on this computer and on smol cloud. It carries its own copy of the smolvm engine, so it needs no separate smolvm install, and it reaches smol cloud once you sign in. smolvm remains the runtime’s own CLI, described in the Machine Lifecycle CLI Reference.

Install

On macOS (Apple Silicon) and Linux:

curl -sSL https://raw.githubusercontent.com/smol-machines/smol/v1.32.2/scripts/install.sh | bash
smol --version

The script downloads the release bundle, checks its checksum, unpacks it under ~/.smol and links smol into ~/.local/bin. It installs the latest release; SMOL_VERSION=v1.32.2 pins one, and PREFIX and BIN_DIR change those places. smol --version prints the CLI version and the engine version it carries, for example smol 1.32.2 (engine smolvm 1.32.2).

Sign in to reach smol cloud:

smol auth login

One login covers the cloud API and the registry. Without it, commands work on local machines only, and smol machine ls says that cloud machines were left out.

Local or cloud

smol machine commands find a machine wherever it lives, so smol machine ls lists both sides. To pick one, pass --local or --cloud, or prefix the name with local/ or cloud/. A machine id that starts with mach- is always a cloud machine. create, update, resize, images, prune, monitor and data-dir act on local machines only; smol cloud deploy creates a cloud one.

--disk-durability deferred on smol machine create, smol run and smol cloud deploy lets guest writes reach the disk on the host’s schedule, faster for fsync-heavy work such as database commits; full, the default, makes a guest fsync wait for the disk.

Run smol <command> --help for every flag of a command.

Commands

CommandWhat it does
smol run -I IMAGE -- CMDRun a command in a throwaway machine, print its output when it finishes, and exit with its code
smol newScaffold a project: app code, a Smolfile and a README, from the flask or node template
smol machine ...A machine’s whole lifecycle, below
smol file init, up, downCreate a Smolfile, and bring its machine up or down
smol pack create, push, pull, inspectBuild and publish .smolmachine artifacts
smol registry ls, catalog, tags, login, logoutBrowse registries and store their credentials
smol auth login, logout, statusSign in to smol cloud and its registry
smol cloud ...Cloud-only operations, below
smol config set, showRead and change the CLI’s configuration
smol rollout ...Manage fused rollout executors and policy versions on a CUDA node

smol machine

create, start, stop, pause, resume, rm, ls, status, exec, shell, logs, cp, sync, branch, branch-batch, checkpoint, checkpoint-log, checkpoint-prune, checkpoint-warm, restore, move, images, prune, resize, update, monitor and data-dir. A machine is named with --name:

smol machine create --name dev --image alpine
smol machine start --name dev
smol machine exec --name dev -- uname -a
smol machine rm --name dev --yes

smol machine move --name NAME moves a running local machine to smol cloud, processes and memory included; see Cloud Lifecycle, Storage, and Networking.

smol file up

smol file up mounts each Smolfile volume read-only unless it ends in :rw or :staged, and refuses a host directory outside the Smolfile’s own folder unless --allow-mount PATH names it. It shows the mounts for approval the first time and whenever they change; --yes approves them without asking.

smol cloud

CommandWhat it does
deploy [REFERENCE]Create and start a cloud machine
ls, rm, scaleList, delete and scale cloud machines
exec, shellRun a command, or open a shell, on a cloud machine; exec --detach runs it in the background and logs reads its output back
exportExport a stopped machine as a .smolmachine in your registry namespace
checkpointCapture, list, download, restore or delete live checkpoints, or upload one taken on this computer
share, unshareMint a login-free link to a machine’s published app, or revoke it