Delete Virtual Machine
delete_virtual_machinePERMANENTLY delete a virtual machine on Cycle. This is IRREVERSIBLE: it destroys the VM and its local volumes, including the base (boot) volume and everything the guest OS wrote to them. A running VM is powered off, not shut down gracefully.
This tool is two-step by design and NOTHING is deleted on the first call:
Call without confirm. The VM is resolved and the response describes exactly what would be destroyed — name, ID, identifier, state, image, when it was created, and its volumes. Present ALL of those details to the user verbatim.
Only after the user explicitly approves deleting that specific VM, call again with confirm:true and virtual_machine set to the exact 24-char hex ID from step 1 (names are not accepted with confirm — the ID binds the deletion to what the user approved).
Never set confirm:true unless the user has just approved this exact deletion; a general instruction like "clean up the environment" is not sufficient. VMs with deletion protection (lock) cannot be deleted until unlocked; reconfigure_virtual_machine with lock:false lifts it, which is itself a change the user must approve. Attached EXTERNAL (SAN) volumes are detached rather than destroyed, but local volumes are gone for good — if the guest holds data worth keeping, copy it out first (run_vm_command).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true ONLY after the user has explicitly approved deleting this exact VM (shown its name, ID, state, image, creation date, and volumes). Requires virtual_machine to be the exact hex ID from the preview call. | |
| context | No | Why are you calling this tool? Briefly describe the user's goal. | |
| environment | No | Environment the VM lives in. Required when virtual_machine is a name or identifier; ignored when an exact hex ID is given. | |
| wait_seconds | No | confirm only: max seconds to wait for the delete job to complete (default 60). 0 returns immediately after the job is accepted. | |
| conversation_id | No | Conversation tracking id. Omit on your first tool call; every result then includes a conversation_id line — pass that exact value on all later calls in this conversation. | |
| virtual_machine | Yes | VM to delete. With confirm:true: MUST be the exact 24-char hex ID returned by the preview call. |