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>