--- description: Manage Proxmox Virtual Environment infrastructure. Monitor nodes, manage VMs and containers, and perform SRE operations. homepage: "https://www.proxmox.com" metadata: moltbot: api_base: PROXMOX_HOST/api2/json category: infrastructure emoji: 🖥️ name: proxmox version: 1.0.0 --- # Proxmox Manage infrastructure running on Proxmox Virtual Environment. This skill allows an AI agent to: - Monitor nodes - Inspect VMs and containers - Start / stop / reboot workloads - Read tasks and logs - Perform basic SRE infrastructure operations This skill **does NOT upload files** and only performs safe operational actions. Supported platform: - Proxmox Virtual Environment API ------------------------------------------------------------------------ # Skill Files ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- File URL ----------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------- **SKILL.md** https://gist.githubusercontent.com/jpacora/8b4a7c298ce8082ebecf84d8cba24215/raw ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Install locally: ``` bash mkdir -p ~/.openclaw/skills//proxmox curl -s https://gist.githubusercontent.com/jpacora/8b4a7c298ce8082ebecf84d8cba24215/raw/68685737758f7ceb5fa59e3b53d88c35ab36a531/proxmox.skill.md > ~/.openclaw/skills//proxmox/SKILL.md ``` ------------------------------------------------------------------------ # API Base All requests use: https://PROXMOX_HOST/api2/json Example: https://proxmox.local:8006/api2/json ------------------------------------------------------------------------ # Security Warning ⚠️ **Never expose your Proxmox API token.** The token allows full infrastructure control. Rules: - Only send requests to your **Proxmox host** - Never send the API token to other APIs - Never reveal the token in logs or prompts - Never include the token in messages to humans Authentication header: Authorization: PVEAPIToken=USER@REALM!TOKENID=SECRET Example: Authorization: PVEAPIToken=root@pam!moltbot=abcdef-123456 ------------------------------------------------------------------------ # First Time Setup When this skill is installed, you must ask the human for the connection details. Store them in **MEMORY** so you don't need to ask again. Required values: - Proxmox Host - Node Name - API Token ID - API Token Secret ------------------------------------------------------------------------ # Step 1 --- Proxmox Host Ask the human: What is your Proxmox API host? Hint (example): https://proxmox.local:8006 Store: MEMORY.proxmox_host Do NOT include `/api2/json`. ------------------------------------------------------------------------ # Step 2 --- Node Name Ask the human: What is your Proxmox node name? Example: pve You can also discover nodes using: GET /nodes Store: MEMORY.proxmox_node ------------------------------------------------------------------------ # Step 3 --- Create an API Token Guide the human. Explain the process clearly. The human must open the Proxmox web UI. Navigate to: Datacenter → Permissions → API Tokens Steps: 1. Click **Add** 2. Select a user (example: `root@pam`) 3. Token ID example: ```{=html} ``` moltbot 4. Disable privilege separation if needed for automation 5. Copy the **Secret** ------------------------------------------------------------------------ # Step 4 --- Provide Token ID Ask the human for the token ID. Example: root@pam!moltbot Store: MEMORY.proxmox_token_id ------------------------------------------------------------------------ # Step 5 --- Provide Token Secret Ask the human for the token secret. Example: abcdef12-3456-7890-abcd-1234567890ab Store: MEMORY.proxmox_token_secret ------------------------------------------------------------------------ # Authentication Every request must include: Authorization: PVEAPIToken=TOKEN_ID=TOKEN_SECRET Example: Authorization: PVEAPIToken=root@pam!moltbot=abcdef12-3456 ------------------------------------------------------------------------ # Base Curl Template Use this template: ``` bash curl -k "$PROXMOX_HOST/api2/json/ENDPOINT" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ------------------------------------------------------------------------ # Tools ## Get Cluster Resources ``` bash curl -k "$PROXMOX_HOST/api2/json/cluster/resources" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Get Nodes ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Node Status ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/status" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## List Virtual Machines ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Get VM Status ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/current" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Start VM ``` bash curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/start" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Stop VM ``` bash curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/stop" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Reboot VM ``` bash curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/reboot" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## List Containers ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Start Container ``` bash curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc/$VMID/status/start" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Stop Container ``` bash curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc/$VMID/status/stop" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Get Recent Tasks ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/tasks" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ## Get Task Log ``` bash curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/tasks/$UPID/log" \ -H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET" ``` ------------------------------------------------------------------------ # Memory The agent must store: MEMORY.proxmox_host MEMORY.proxmox_node MEMORY.proxmox_token_id MEMORY.proxmox_token_secret Reuse automatically once configured. ------------------------------------------------------------------------ End of skill.