Skip to content

ElefantOne/vastai-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vast.ai Client

Minimal PSR-compliant PHP 8.3 CLI project for managing Vast.ai instances through the official HTTP API.

Features

  • 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

API coverage

  • 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/

Requirements

  • PHP 8.3+
  • ext-curl
  • ext-json
  • A Vast.ai API key in VAST_AI_API_KEY

Configuration

Supported environment variables:

  • VAST_AI_API_KEY
  • VAST_AI_BASE_URI (optional, defaults to https://console.vast.ai/api/v0)

Example:

export VAST_AI_API_KEY=your-api-key
chmod +x bin/vastai-client

Usage

Show the built-in help:

bin/vastai-client help

List instances:

bin/vastai-client instances:list
bin/vastai-client instances:list --status=running --json
bin/vastai-client instances:list --label=trainer

Search 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:asc

Create an instance:

bin/vastai-client instances:create --payload=examples/create-instance.json

Or 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 \
  --json

Destroy an instance:

bin/vastai-client instances:destroy --id=<instance-id>

Notes

  • examples/create-instance.json uses a placeholder offer_id; replace it with a real marketplace offer before creating an instance.
  • --payload is the most complete path because Vast.ai exposes many optional create fields.

About

A simple PHP client for Vastai service with minimal functionality

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages