Proxmox Complete
by @ricanwarfare
Manage Proxmox VE clusters via REST API. List nodes, VMs, containers; control power states; manage snapshots, backups, storage, and tasks. Use when user asks...
clawhub install proxmox-completeπ About This Skill
name: proxmox-complete description: Manage Proxmox VE clusters via REST API. List nodes, VMs, containers; control power states; manage snapshots, backups, storage, and tasks. Use when user asks about Proxmox, VMs, LXC, snapshots, backups, or cluster status. version: 1.0.0 metadata: openclaw: emoji: "π₯οΈ" requires: bins: ["curl", "jq", "python3"] python_packages: ["proxmoxer"]
Proxmox Complete Skill
Comprehensive Proxmox VE management combining:
Configuration
Option 1: OpenClaw Credentials (Recommended)
Create ~/.openclaw/credentials/proxmox.json:
{
"host": "your-proxmox-ip",
"token_id": "clawd@pve!tokenname",
"token_secret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"verify_ssl": false
}
Option 2: Environment Variables
export PVE_HOST="your-proxmox-ip"
export PVE_TOKEN_ID="clawd@pve!tokenname"
export PVE_TOKEN_SECRET="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
export PVE_VERIFY_SSL="false"
Option 3: Credentials File
cat > ~/.proxmox-credentials << 'EOF'
PROXMOX_HOST=https://your-proxmox-ip:8006
PROXMOX_TOKEN_ID=clawd@pve!tokenname
PROXMOX_TOKEN_SECRET=your-token-secret
EOF
chmod 600 ~/.proxmox-credentials
Create API Token
1. Login to Proxmox web UI 2. Datacenter β Permissions β API Tokens β Add 3. Select user, enter token ID, uncheck "Privilege Separation" if needed 4. Copy the secret (shown only once!)
Tools
Cluster & Nodes
# Cluster overview
python3 scripts/proxmox.py nodesNode health (CPU, RAM, uptime)
python3 scripts/proxmox.py node_health pveBash alternative
bash scripts/pve.sh status
List Resources
# All VMs cluster-wide
python3 scripts/proxmox.py vmsAll VMs on specific node
bash scripts/pve.sh vms pveLXC containers on node
bash scripts/pve.sh lxc pveCluster resources (all types)
bash scripts/pve.sh resources
VM/Container Status
# Python (detailed)
python3 scripts/proxmox.py status pve qemu 115Bash (quick)
bash scripts/pve.sh info pve 115
Power Control (Requires Approval)
# Start VM
python3 scripts/proxmox.py start pve qemu 115Stop VM (hard)
python3 scripts/proxmox.py stop pve qemu 115Shutdown VM (graceful)
python3 scripts/proxmox.py shutdown pve qemu 115Reboot VM
python3 scripts/proxmox.py reboot pve qemu 115Bash alternatives
bash scripts/pve.sh start 115 pve
bash scripts/pve.sh stop 115 pve
bash scripts/pve.sh shutdown 115 pve
Snapshots
# List snapshots
python3 scripts/proxmox.py list_snapshots pve qemu 115Create snapshot (vmstate=0: no RAM, vmstate=1: include RAM)
python3 scripts/proxmox.py snapshot pve qemu 115 pre-update 0Delete snapshot (requires approval)
python3 scripts/proxmox.py delete_snapshot pve qemu 115 pre-updateRollback to snapshot (bash)
bash scripts/pve.sh rollback pve 115 pre-update
Backups
# List backups
bash scripts/pve.sh backups pve localStart backup
bash scripts/pve.sh backup pve 115 local
Storage
# List storage pools
bash scripts/pve.sh storage pveStorage content
bash scripts/pve.sh content pve local
Tasks & Logs
# Recent tasks
bash scripts/pve.sh tasks pveTask log
bash scripts/pve.sh log pve UPID:pve:00001234:...
Approval Requirements
These actions require user approval:
start, stop, shutdown, rebootsnapshot, delete_snapshotbackuprollbackRead-only operations (no approval needed):
nodes, vms, status, list_snapshotsbackups (list only), storage, tasks, logResponse Format
All commands return JSON for easy parsing:
{
"ok": true,
"data": { ... }
}
Error responses:
{
"ok": false,
"error": "Missing env var: PVE_HOST"
}
Notes
pve with your actual node name115 with actual VMIDqemu = VM, lxc = containerverify_ssl: false or use -k flagCredit
Merged from:
robnew/proxmox-skill β Python tool-based approach with approvalsweird-aftertaste/proxmox β Bash helper with comprehensive API coverageLicense
MIT
βοΈ Configuration
Option 1: OpenClaw Credentials (Recommended)
Create ~/.openclaw/credentials/proxmox.json:
{
"host": "your-proxmox-ip",
"token_id": "clawd@pve!tokenname",
"token_secret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"verify_ssl": false
}
Option 2: Environment Variables
export PVE_HOST="your-proxmox-ip"
export PVE_TOKEN_ID="clawd@pve!tokenname"
export PVE_TOKEN_SECRET="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
export PVE_VERIFY_SSL="false"
Option 3: Credentials File
cat > ~/.proxmox-credentials << 'EOF'
PROXMOX_HOST=https://your-proxmox-ip:8006
PROXMOX_TOKEN_ID=clawd@pve!tokenname
PROXMOX_TOKEN_SECRET=your-token-secret
EOF
chmod 600 ~/.proxmox-credentials
Create API Token
1. Login to Proxmox web UI 2. Datacenter β Permissions β API Tokens β Add 3. Select user, enter token ID, uncheck "Privilege Separation" if needed 4. Copy the secret (shown only once!)
π Tips & Best Practices
pve with your actual node name115 with actual VMIDqemu = VM, lxc = containerverify_ssl: false or use -k flag