| description | homepage | metadata | name | version | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Manage Proxmox Virtual Environment infrastructure. Monitor nodes, manage VMs and containers, and perform SRE operations. |
|
proxmox |
1.0.0 |
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
File URL
SKILL.md https://gist.githubusercontent.com/jpacora/8b4a7c298ce8082ebecf84d8cba24215/raw
Install locally:
mkdir -p ~/.openclaw/skills//proxmox
curl -s https://gist.githubusercontent.com/jpacora/8b4a7c298ce8082ebecf84d8cba24215/raw/68685737758f7ceb5fa59e3b53d88c35ab36a531/proxmox.skill.md > ~/.openclaw/skills//proxmox/SKILL.mdAll requests use:
https://PROXMOX_HOST/api2/json
Example:
https://proxmox.local:8006/api2/json
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
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
Ask the human:
What is your Proxmox API host?
Hint (example):
https://proxmox.local:8006
Store:
MEMORY.proxmox_host
Do NOT include /api2/json.
Ask the human:
What is your Proxmox node name?
Example:
pve
You can also discover nodes using:
GET /nodes
Store:
MEMORY.proxmox_node
Guide the human.
Explain the process clearly.
The human must open the Proxmox web UI.
Navigate to:
Datacenter
→ Permissions
→ API Tokens
Steps:
- Click Add
- Select a user (example:
root@pam) - Token ID example:
<!-- -->
moltbot
- Disable privilege separation if needed for automation
- Copy the Secret
Ask the human for the token ID.
Example:
root@pam!moltbot
Store:
MEMORY.proxmox_token_id
Ask the human for the token secret.
Example:
abcdef12-3456-7890-abcd-1234567890ab
Store:
MEMORY.proxmox_token_secret
Every request must include:
Authorization: PVEAPIToken=TOKEN_ID=TOKEN_SECRET
Example:
Authorization: PVEAPIToken=root@pam!moltbot=abcdef12-3456
Use this template:
curl -k "$PROXMOX_HOST/api2/json/ENDPOINT" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/cluster/resources" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/status" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/current" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/start" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/stop" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/qemu/$VMID/status/reboot" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc/$VMID/status/start" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -X POST -k "$PROXMOX_HOST/api2/json/nodes/$NODE/lxc/$VMID/status/stop" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/tasks" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"curl -k "$PROXMOX_HOST/api2/json/nodes/$NODE/tasks/$UPID/log" \
-H "Authorization: PVEAPIToken=$TOKEN_ID=$TOKEN_SECRET"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.