Minimal PSR-compliant PHP 8.3 CLI project for managing Vast.ai instances through the official HTTP API.
- List your Vast.ai instances
- Create a new instance from a marketplace offer
- Destroy an instance by ID
- Search marketplace offers by GPU, price, reliability, and capacity
- Vast.ai instances listing:
GET /instances/?owner=me - Vast.ai instance create:
PUT /asks/{offer_id}/ - Vast.ai instance destroy:
DELETE /instances/{id}/ - Vast.ai marketplace offer search:
POST /bundles/
- PHP 8.3+
ext-curlext-json- A Vast.ai API key in
VAST_AI_API_KEY
Supported environment variables:
VAST_AI_API_KEYVAST_AI_BASE_URI(optional, defaults tohttps://console.vast.ai/api/v0)
Example:
export VAST_AI_API_KEY=your-api-key
chmod +x bin/vastai-clientShow the built-in help:
bin/vastai-client helpList instances:
bin/vastai-client instances:list
bin/vastai-client instances:list --status=running --json
bin/vastai-client instances:list --label=trainerSearch marketplace offers:
bin/vastai-client offers:list
bin/vastai-client offers:list --gpu-name="RTX 4090" --num-gpus=1 --limit=10
bin/vastai-client offers:list --type=ondemand --min-reliability=0.98 --order=dph_total:ascCreate an instance:
bin/vastai-client instances:create --payload=examples/create-instance.jsonOr build the request from CLI flags:
bin/vastai-client instances:create \
--offer-id=1234567 \
--image=nvidia/cuda:12.3.2-base-ubuntu22.04 \
--label=trainer \
--disk=32 \
--env=JUPYTER_TOKEN=secret \
--port=8080:8080/tcp \
--port=22:22/tcp \
--jsonDestroy an instance:
bin/vastai-client instances:destroy --id=<instance-id>examples/create-instance.jsonuses a placeholderoffer_id; replace it with a real marketplace offer before creating an instance.--payloadis the most complete path because Vast.ai exposes many optional create fields.