AWS Serverless Eda
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
Vast.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing.
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vast-ai/vast-cli vastai-sdk --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/vastai_sdk .claude/skills/vastai-sdk && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .claude/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vast-ai/vast-cli/tree/master/vastai_sdkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vast-ai/vast-cli vastai-sdk --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/vastai_sdk .agents/skills/vastai-sdk && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .agents/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vast-ai/vast-cli vastai-sdk --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/vastai_sdk .cursor/skills/vastai-sdk && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .cursor/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vast-ai/vast-cli.git --path vastai_sdk--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vast-ai/vast-cli vastai-sdk --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/vastai_sdk .gemini/skills/vastai-sdk && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .gemini/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vast-ai/vast-cli vastai-sdkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .github/skills && cp -r skills-src/vastai_sdk .github/skills/vastai-sdk && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .github/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vast-ai/vast-cli --skill vastai-sdk -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vast-ai/vast-cli vastai-sdk --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vast-ai/vast-cli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/vastai_sdk .opencode/skills/vastai-sdk && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vastai-sdk" agent skill from https://github.com/vast-ai/vast-cli/tree/master/vastai_sdk into .opencode/skills/vastai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vastai-sdk", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vastai-sdkVast.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing.
Vastai SDK is an agent skill from vast-ai/vast-cli. Vast.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `__init__.py`). Compatibility notes: Python 3.9+
It sits in Backend & APIs, covering Serverless. It works with Python. The repository describes itself as: Vast.ai python and cli api client. The licence is MIT.
Read from SKILL.md and the folder at commit 8d0d31c. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Python(vastai:*)From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
console.vast.aivast.aiFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Python 3.9+
From compatibility in the SKILL.md frontmatter.
Vastai SDK loads about 2k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 252 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vast-ai/vast-cli at commit 8d0d31c, republished under its MIT licence (© vast-ai). 252 words, ~1,984 tokens.
.claude/skills/vastai-sdk/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.vastai / vastai_sdk)The vastai package provides a Python SDK for managing GPU instances, volumes, serverless endpoints, and billing on Vast.ai. The vastai_sdk package is a backward-compatibility shim that re-exports vastai.
pip install vastaiFor serverless and async support:
pip install "vastai[serverless]"The SDK reads the API key from ~/.vast_api_key by default. You can also pass it explicitly:
from vastai import VastAI
vast = VastAI() # reads ~/.vast_api_key
vast = VastAI(api_key="YOUR_API_KEY") # explicit keyGet your API key from https://console.vast.ai/manage-keys/
The old vastai_sdk import still works:
from vastai_sdk import VastAI # equivalent to: from vastai import VastAIfrom vastai import VastAI
vast = VastAI(api_key=None, server_url=None, retry=3, raw=False, quiet=False)# List all your instances
instances = vast.show_instances()
# Get a single instance
instance = vast.show_instance(id=12345)
# Search GPU offers
offers = vast.search_offers(query='gpu_name=RTX_4090 num_gpus>=4 reliability>0.99')
# Create an instance from an offer
result = vast.create_instance(id=<offer_id>, image="pytorch/pytorch:latest", disk=50)
# ...as a jupyter instance on a direct connection
result = vast.create_instance(id=<offer_id>, image="pytorch/pytorch:latest", disk=50,
jupyter=True, direct=True, jupyter_lab=True)
# Lifecycle
vast.start_instance(id=12345)
vast.stop_instance(id=12345)
vast.reboot_instance(id=12345)
vast.destroy_instance(id=12345)
# Label an instance
vast.label_instance(id=12345, label="my-training-run")
# Get SSH connection string
ssh_url = vast.ssh_url(id=12345) # returns "ssh -p PORT user@host"
scp_url = vast.scp_url(id=12345) # returns scp-compatible URLInterruptible (spot) instances are priced below on-demand instances, but can be interrupted at any time by another user with a lower bid. Note: vast.search_offers(type='bid', ...) exposes min_bid, but vast.create_instance(...) defaults to on-demand at dph_total unless you pass bid_price=<floor>. Always pass bid_price after a type='bid' search, otherwise the instance will be rented as an on-demand instance/price instead of as an interruptible.
When outbid, the instance moves to stopped (not destroyed) and storage charges continue. Resume by raising the bid via vast.change_bid(id=..., price=...).
# Search GPU offers (use help(vast.search_offers) for full query syntax)
offers = vast.search_offers(query='gpu_name=RTX_3090 num_gpus>=2')
# Search volume offers
volumes = vast.search_volumes(query='...')
# Search network volumes
net_vols = vast.search_network_volumes()
# Search templates
templates = vast.search_templates()
# Search invoices
invoices = vast.search_invoices()# copy() takes vast URLs: "[C.|V.]id:path", "cloud_service[.id]:path", or "local:path"
vast.copy("local:./data/", "C.12345:/workspace/data/") # Local → instance
vast.copy("C.12345:/workspace/results/", "local:./out/") # Instance → local
vast.copy("12345:/workspace/", "67890:/workspace/") # Instance → instance (legacy format)
vast.copy("s3.101:/data/", "C.12345:/workspace/") # Cloud service → instance
vast.copy("V.1234:/file", "C.5678:/workspace/") # Volume → instance
vast.copy("V.1234:/file", "s3.101:/workspace/") # Volume → cloud service
vast.cancel_copy(dst_id=12345) # Cancel an in-progress copy
# Cloud sync via a saved cloud connection (see the UI settings page for connection IDs)
vast.cloud_copy(src="./data", dst="s3://bucket/path", instance=12345,
connection=<conn_id>, transfer="Instance To Cloud")
vast.cancel_sync(dst_id=12345)Volume copy is currently only supported for copying to other volumes, instances, or cloud services, not local. Do not use /root or / as a destination directory — it breaks ssh permissions on the instance and future copies fail. See https://vast.ai/docs/gpu-instances/data-movement#constraints.
# List all deployments
deployments = vast.show_deployments()
# Get a deployment
deployment = vast.show_deployment(id=42)
# Delete a deployment
vast.delete_deployment(id=42)machines = vast.show_machines()
machine = vast.show_machine(id=10)
vast.list_machine(id=10, price_gpu=0.30)
vast.unlist_machine(id=10)keys = vast.show_ssh_keys()
vast.create_ssh_key(ssh_key="ssh-rsa AAAA...")
vast.delete_ssh_key(id=5)members = vast.show_members()
vast.invite_member(email="user@example.com", role="developer")
vast.remove_member(id=7)SyncClient provides typed, synchronous access to GPU offers and instances.
from vastai import SyncClient
client = SyncClient(api_key="YOUR_API_KEY") # or reads ~/.vast_api_key
# Search offers with structured filters
offers = client.search(
num_gpus=2,
gpu_name="RTX_4090",
min_reliability=0.99,
max_dph_total=2.0,
)
# Create an instance (SyncClient takes an InstanceConfig, not loose kwargs)
from vastai.data.instance import InstanceConfig
instance = client.create_instance(
offer_id=<id>,
config=InstanceConfig(image="pytorch/pytorch:latest", disk=50),
)
# List your instances
instances = client.show_instances() # returns list[SyncInstance]
# Destroy an instance
client.destroy_instance(instance_or_id=12345)AsyncClient provides async access to GPU offers and instances. Use as an async context manager.
import asyncio
from vastai import AsyncClient
from vastai.data.instance import InstanceConfig
async def main():
async with AsyncClient(api_key="YOUR_API_KEY") as client:
# Search offers
offers = await client.search(num_gpus=1, gpu_name="A100")
# Create instance
instance = await client.create_instance(
offer_id=<id>, config=InstanceConfig(image="ubuntu:22.04"))
# List instances
instances = await client.show_instances() # returns list[AsyncInstance]
# Destroy instance
await client.destroy_instance(instance_or_id=instance.id)
asyncio.run(main())For inference endpoints (requires pip install "vastai[serverless]"):
import asyncio
from vastai import Serverless
async def main():
serverless = Serverless() # reads ~/.vast_api_key
# Get an endpoint
endpoint = await serverless.get_endpoint("my-endpoint")
# Make a request
response = await serverless.request("/v1/completions", {
"model": "Qwen/Qwen3-8B",
"prompt": "Who are you?",
"max_tokens": 100,
"temperature": 0.7,
})
text = response["response"]["choices"][0]["text"]
print(text)
asyncio.run(main())# Find cheapest 4x RTX 4090 and launch a job
from vastai import VastAI
vast = VastAI()
offers = vast.search_offers(query='gpu_name=RTX_4090 num_gpus=4 reliability>0.99')
cheapest = min(offers, key=lambda o: o['dph_total'])
result = vast.create_instance(id=cheapest['id'], image="pytorch/pytorch:latest", disk=100)
print(f"Launched instance: {result['new_contract']}")
# Use help() to explore method signatures
help(vast.search_offers)
help(vast.create_instance)© vast-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in vastai_sdk of vast-ai/vast-cli.
Open the folder on GitHubat commit 8d0d31c
Vastai SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vastai SDK this skillvast-ai/vast-cli | 223 | — | ~2k | Automated safety check: Pass | MIT | |
| AWS Serverless Edazxkane/aws-skills | 367 | 4 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Adobe App Builder Action Scaffolderadobe/skills | 197 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Cookbook Computedatabricks-solutions/databricks-apps-cookbook | 183 | — | ~790 | Automated safety check: Pass | Custom licence | |
| Modaldavila7/claude-code-templates | 33k | 7 repos | ~2.6k | Automated safety check: Pass | MIT | |
| ModalK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~4.5k | Automated safety check: Notes | Apache-2.0 |
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
adobe/skills
Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.
databricks-solutions/databricks-apps-cookbook
Connect Databricks Apps to shared clusters or serverless compute using Databricks Connect.
davila7/claude-code-templates
Run Python code in the cloud with serverless containers, GPUs, and autoscaling.
K-Dense-AI/scientific-agent-skills
Modal is a serverless cloud platform for running Python on demand, including on-demand GPUs.
TencentEdgeOne/edgeone-makers-tools
EdgeOne Makers Cloud Functions — Node.js, Go, and Python runtimes.
Works with
Categories
Vast.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing. Vastai SDK is an agent skill from vast-ai/vast-cli.ai Python SDK — high-level API for GPU instances, volumes, serverless endpoints, and billing.
Vastai SDK fits situations like: tasks that involve Serverless.
Run `npx skills add vast-ai/vast-cli --skill vastai-sdk -a claude-code`. Or copy the skill folder (vastai_sdk in vast-ai/vast-cli) into .claude/skills/vastai-sdk in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vast-ai/vast-cli --skill vastai-sdk -a codex`. Or copy the skill folder (vastai_sdk in vast-ai/vast-cli) into .agents/skills/vastai-sdk in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vast-ai/vast-cli --skill vastai-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vastai-sdk, .gemini/skills/vastai-sdk, .github/skills/vastai-sdk and .opencode/skills/vastai-sdk in your project.
Going by SKILL.md and its folder, Vastai SDK needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3; A credential in YOUR_API_KEY. Its frontmatter pre-approves these tools: Python(vastai:*). Compatibility (from SKILL.md): Python 3.9+.
SKILL.md names 2 domains. As links in the text: console.vast.ai and vast.ai. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vastai SDK is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vastai SDK: AWS Serverless Eda (zxkane/aws-skills, 367 stars), Adobe App Builder Action Scaffolder (adobe/skills, 197 stars), Cookbook Compute (databricks-solutions/databricks-apps-cookbook, 183 stars) and Modal (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vast-ai (a GitHub organization) maintains it in vast-ai/vast-cli, which has 223 GitHub stars. The repository was last updated on October 9, 2026.
Source: vast-ai/vast-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.