vm0
Original:🇺🇸 English
Translated
VM0 API for running AI agents in secure sandboxes. Use this skill to execute agents, manage runs, and download outputs (artifacts) and inputs (volumes) via the VM0 platform API.
2installs
Sourcevm0-ai/vm0-skills
Added on
NPX Install
npx skill4agent add vm0-ai/vm0-skills vm0Tags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →VM0 API
Execute AI agents in secure sandboxed environments and manage their inputs/outputs.
Note: If you have the VM0 CLI installed and the vm0-cli skill available, prefer using the vm0-cli skill instead. It provides a higher-level interface with more convenient operations.
When to Use
- Execute AI agents in isolated sandbox environments
- Monitor and manage agent runs (status, logs, metrics)
- List and download input files (volumes) provided to agents
- List and download output files (artifacts) created by agents
Prerequisites
bash
export VM0_TOKEN=vm0_live_your-api-keyGet API Key
- Install the VM0 CLI: https://docs.vm0.ai/docs/getting-started
- Run to authenticate
vm0 auth login - Run to view your API key
vm0 auth setup-token - Copy the token starting with
vm0_live_
Important: When usingin a command that pipes to another command, wrap only the curl command in$VAR, then pipe to jq outside. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c '...'bashbash -c 'curl -s "https://api.vm0.ai/v1/agents" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data'
Quick Start
List Your Agents
bash
bash -c 'curl -s "https://api.vm0.ai/v1/agents" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data[] | {id, name}'Run an Agent
Write to :
/tmp/vm0_request.jsonjson
{
"agent": "my-agent",
"prompt": "Hello, please introduce yourself"
}Then run:
bash
bash -c 'curl -s -X POST "https://api.vm0.ai/v1/runs" -H "Authorization: Bearer $VM0_TOKEN" -H "Content-Type: application/json" -d @/tmp/vm0_request.json' | jq '{id, status}'Check Run Status
Replace with your run ID:
<run-id>bash
bash -c 'curl -s "https://api.vm0.ai/v1/runs/<run-id>" -H "Authorization: Bearer $VM0_TOKEN"' | jq '{id, status, error, execution_time_ms}'Get Run Logs
bash
bash -c 'curl -s "https://api.vm0.ai/v1/runs/<run-id>/logs" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data[]'Core Operations
Agents
List all agents:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/agents" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data'Get agent details:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/agents/<agent-id>" -H "Authorization: Bearer $VM0_TOKEN"' | jq '{id, name, description}'See references/agents.md for version listing.
Runs
Create a run with variables:
bash
curl -s -X POST "https://api.vm0.ai/v1/runs" \
-H "Authorization: Bearer $VM0_TOKEN" \
-H "Content-Type: application/json" \
-d @- << 'EOF'
{
"agent": "my-agent",
"prompt": "Process the data file",
"variables": {
"DEBUG": "true"
},
"volumes": {
"input-data": "latest"
}
}
EOFCancel a running execution:
bash
bash -c 'curl -s -X POST "https://api.vm0.ai/v1/runs/<run-id>/cancel" -H "Authorization: Bearer $VM0_TOKEN"' | jq '{id, status}'See references/runs.md for events streaming, logs filtering, and metrics.
Volumes (Input Storage)
List volumes:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/volumes" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data[] | {id, name}'Download volume as tar.gz archive (follows 302 redirect):
bash
curl -L -o volume.tar.gz "https://api.vm0.ai/v1/volumes/<volume-id>/download" \
-H "Authorization: Bearer $VM0_TOKEN"See references/volumes.md for version listing and download options.
Artifacts (Output Storage)
List artifacts:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/artifacts" -H "Authorization: Bearer $VM0_TOKEN"' | jq '.data[] | {id, name}'Download artifact as tar.gz archive (follows 302 redirect):
bash
curl -L -o artifact.tar.gz "https://api.vm0.ai/v1/artifacts/<artifact-id>/download" \
-H "Authorization: Bearer $VM0_TOKEN"Extract downloaded archive:
bash
tar -xzf artifact.tar.gz -C ./output/See references/artifacts.md for version listing and download options.
Common Patterns
Pagination
List endpoints support cursor-based pagination:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/runs?limit=10" -H "Authorization: Bearer $VM0_TOKEN"' | jq '{data, pagination}'Response includes:
json
{
"pagination": {
"has_more": true,
"next_cursor": "abc123"
}
}Fetch next page:
bash
bash -c 'curl -s "https://api.vm0.ai/v1/runs?limit=10&cursor=abc123" -H "Authorization: Bearer $VM0_TOKEN"' | jq '{data, pagination}'Error Handling
All errors return a consistent format:
json
{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such agent: 'my-agent'",
"param": "agent"
}
}| Error Type | Status | Description |
|---|---|---|
| 401 | Invalid or missing API key |
| 400 | Invalid parameters |
| 404 | Resource doesn't exist |
| 500 | Internal server error |
Detailed References
- Agents API - List agents and versions
- Runs API - Execute agents, stream events, get logs and metrics
- Artifacts API - List and download agent outputs
- Volumes API - List and download input files
API Reference
- Documentation: https://docs.vm0.ai/docs/reference/api
- Base URL:
https://api.vm0.ai/v1/