Skip to main content

Command Line Interface (solti CLI)

The Solti CLI provides complete terminal access for developers and automated CI/CD pipelines.

Installation​

# Via Node.js (pnpm / npm)
pnpm add -g @solti/cli

# Via Python (uv / pip)
uv tool install solti-cli

Profile Configuration​

Authentication tokens and active workspaces are stored locally in ~/.solti/:

# Add a profile
solti config profiles set prod \
--project-id proj-38749-db30 \
--api-key <your-zitadel-pat>

# Activate profile for current shell session
eval $(solti config profiles use prod)

# List configured profiles
solti config profiles list

Submitting Workloads (solti job run)​

The CLI supports two flexible submission modes.

Mode A: Declarative YAML File​

solti job run -f workload.yaml

Mode B: Direct Command Line Arguments​

Submit workloads without creating a YAML file. All YAML properties are mirrored as CLI flags:

solti job run \
--image astral/uv:latest \
--env-from-file .env \
--volume my-ml-datasets/some/prefix:/mnt/r2 \
--resources cpu=4,memory=16Gi,gpu=24Gi \
--cloud aws,gcp \
--region americas \
--label environment=production \
--tag training \
uv run --with numpy --with pandas python -c "print('Running analytics job!')"

Trailing arguments: if --command and --args are omitted, any trailing arguments are automatically mapped as the container's command and args.

Volume shorthand: --volume <bucket>[/<prefix>]:<mountPath> automatically resolves the bucket, prefix, and matching cloud credentials. See Mounting Storage Volumes.

Default resources: if --resources is omitted, Solti automatically assigns 1 CPU and 4Gi memory (cpu=1,memory=4Gi).

Monitoring & Cancelling Jobs​

# List recent workloads with status
solti job list --tag training

# View detailed status, VM lifecycle, and costs
solti job status <job-id-or-name>

# Cancel an active or queued workload
solti job cancel <job-id-or-name>