From vastai-pack
Upgrade Vast.ai CLI, migrate API versions, and handle breaking changes. Use when upgrading vastai CLI, detecting deprecations, or migrating between API versions. Trigger with phrases like "upgrade vastai", "vastai migration", "vastai breaking changes", "update vastai CLI".
npx claudepluginhub flight505/skill-forge --plugin vastai-packThis skill is limited to using the following tools:
!`vastai --version 2>/dev/null || echo 'vastai CLI not installed'`
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
!vastai --version 2>/dev/null || echo 'vastai CLI not installed'
!pip show vastai 2>/dev/null | grep -E "^(Name|Version)" || echo 'N/A'
Upgrade the Vast.ai CLI and Python SDK, handle API changes, and migrate between GPU configurations. The CLI is distributed via PyPI as vastai and tracks the REST API at cloud.vast.ai/api/v0.
vastai CLI installed# Check installed version
vastai --version
pip show vastai | grep Version
# Upgrade to latest
pip install --upgrade vastai
# Verify upgrade
vastai --version
vastai show user # Verify auth still works
# Compare CLI help output before and after upgrade
import subprocess
def get_cli_commands():
result = subprocess.run(["vastai", "--help"], capture_output=True, text=True)
commands = set()
for line in result.stdout.split('\n'):
stripped = line.strip()
if stripped and not stripped.startswith('-') and not stripped.startswith('usage'):
cmd = stripped.split()[0] if stripped.split() else ""
if cmd.isalpha():
commands.add(cmd)
return commands
# Run before and after upgrade to detect removed commands
# The REST API is at v0 — if Vast.ai introduces v1, update base URL
OLD_BASE = "https://cloud.vast.ai/api/v0"
NEW_BASE = "https://console.vast.ai/api/v0" # Alternative endpoint
# Test both endpoints
import requests
for base in [OLD_BASE, NEW_BASE]:
try:
resp = requests.get(f"{base}/users/current",
headers={"Authorization": f"Bearer {api_key}"})
print(f"{base}: {resp.status_code}")
except Exception as e:
print(f"{base}: {e}")
# Update GPU workload images to latest CUDA
# Old: pytorch/pytorch:1.13-cuda11.7-runtime
# New: pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime
# Test new image locally before deploying
docker pull pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime
docker run --rm pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime python -c "import torch; print(torch.__version__)"
# Verify CUDA compatibility with target GPU hosts
vastai search offers 'cuda_max_good>=12.1 num_gpus=1' --limit 5
#!/bin/bash
set -euo pipefail
echo "Post-upgrade verification..."
vastai show user && echo " Auth: OK"
vastai search offers 'num_gpus=1 rentable=true' --limit 1 --raw | python3 -c "import sys,json; offers=json.load(sys.stdin); print(f' Search: OK ({len(offers)} offers)')"
vastai show instances && echo " Instances: OK"
echo "Upgrade verified."
| Error | Cause | Solution |
|---|---|---|
| CLI command removed after upgrade | Breaking change in new version | Pin to previous version: pip install vastai==0.2.8 |
| Auth fails after upgrade | API key format changed | Re-run vastai set api-key YOUR_KEY |
| CUDA mismatch after image update | Host CUDA older than image requires | Filter offers by cuda_max_good>=VERSION |
For CI/CD integration, see vastai-ci-integration.
Safe upgrade: Pin the current version in requirements.txt, upgrade in a test environment, run the verification script, then update production.
CUDA migration: Move from CUDA 11.7 to 12.1 by updating Docker images and filtering offers with cuda_max_good>=12.1.