Asi vers
Manage VERS VMs - list, create, branch, pause, resume, delete VMs and clusters. Use when working with vers commands, VM management, or when disk space issues occur.
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/vers" ~/.claude/skills/plurigrid-asi-vers && rm -rf "$T"
manifest:
skills/vers/SKILL.mdsource content
VERS VM Management
Overview
VERS is a VM platform that supports branching, snapshots, and clusters. VMs can be managed via the
vers CLI or the REST API at http://13.219.19.157/api/.
CLI Commands
# List/view VMs vers tree <cluster-alias> # Show VM tree for a cluster # VM lifecycle vers run <rootfs> -n <cluster> -N <vm-alias> # Create new cluster with VM vers branch <vm-id> # Branch a VM (creates child) vers pause <vm-id> # Pause a running VM vers resume <vm-id> # Resume a paused VM vers kill <vm-id> # Delete a VM vers kill <cluster-id> # Delete entire cluster # Interaction vers connect <vm-id> # SSH into VM vers execute <vm-id> "command" # Run command on VM vers copy <vm-id> <local> <remote> # Copy files to VM vers copy -r <vm-id> <local-dir> <remote-dir> # Copy directory recursively # State management vers commit <vm-id> # Commit VM state vers checkout <vm-id> # Switch to a different VM
REST API
Base URL:
http://13.219.19.157/api/
Authorization header:
Authorization: Bearer <API_KEY>
Endpoints
# List all VMs curl -s -H "Authorization: Bearer $API_KEY" "http://13.219.19.157/api/vm" # Get specific VM curl -s -H "Authorization: Bearer $API_KEY" "http://13.219.19.157/api/vm/<vm-id>" # Update VM state (pause/resume) curl -X PATCH -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"state": "Running"}' \ "http://13.219.19.157/api/vm/<vm-id>" # Branch a VM curl -X POST -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "http://13.219.19.157/api/vm/<vm-id>/branch" # Delete a VM curl -X DELETE -H "Authorization: Bearer $API_KEY" \ "http://13.219.19.157/api/vm/<vm-id>" # List clusters curl -s -H "Authorization: Bearer $API_KEY" "http://13.219.19.157/api/cluster"
Common Issues
Thin Pool Out of Space
Error:
Thin pool ... is out of data space
This means the VERS storage is full. To free space:
- List all VMs and identify unnecessary ones:
curl -s -H "Authorization: Bearer $API_KEY" "http://13.219.19.157/api/vm" | jq '.data[] | {id, alias, state, children}'
- Delete unused VMs (children first, then parents):
vers kill <vm-id> # Or via API: curl -X DELETE -H "Authorization: Bearer $API_KEY" "http://13.219.19.157/api/vm/<vm-id>"
- Delete entire clusters if not needed:
vers kill <cluster-id>
VM States
- VM is activeRunning
- VM is suspended (can be resumed)Paused- VMs get paused during branch operations
SSH Keys
SSH keys are stored in
.vers/keys/<vm-id>.key after first connection.
Environment Variables
- API key for authentication (required for API calls from within VMs)VERS_API_KEY
Project-Specific Notes
This project (rhizome) develops the vers-client and vers-dsl Haskell libraries:
- Servant API types and clientvers-client/
- Polysemy effect for VERS operationsvers-dsl/- Test VM:
15ad103d-7ed6-4dfd-80ff-87c5588a5001