proxmox-aiops
Use this skill whenever the user needs to manage VMs and containers on Proxmox VE — list/inspect/configure VMs, power and lifecycle (start/stop/shutdown/reboot/reconfigure/clone/delete/migrate), snapshots (create/delete/list/rollback), disk grow/move, vzdump backups (create/list/restore), LXC containers (list/start/stop), cluster/node status, cluster resource inventory, async task polling + logs, free-VMID lookup, HA status, resource pools, firewall inspection, guest-agent ping, and storage listing. Also use it to diagnose cluster health — rank nodes by CPU/memory/disk pressure and scan guests for saturation (read-only RCA). Always use this skill for "list proxmox vms", "start proxmox vm", "stop proxmox vm", "proxmox snapshot", "proxmox backup", "restore proxmox vm", "resize proxmox disk", "proxmox vm status", "migrate proxmox vm", "proxmox container", "proxmox ha", "proxmox pool", "proxmox firewall", "list proxmox storage", "proxmox node pressure", or "why is proxmox slow" when the context is explicitly Proxmox / Proxmox VE / PVE. Do NOT use for non-Proxmox hypervisors, Kubernetes, or cloud providers. Broad coverage of common Proxmox operations, with a built-in governance harness (audit, token budget, undo, risk-tier labels).
Rank
62
Safety
84
Downloads
2.1k
Updated
Oct 9, 2026
Version
0.13.3
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2.1K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2.1K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.13.3release · observed Sep 15, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s171xgnmqse0nqvgqvqnaq5f9183kyre:proxmox-aiops- Install using `clawhub skill install s171xgnmqse0nqvgqvqnaq5f9183kyre:proxmox-aiops` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/zw008/proxmox-aiops before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-zw008-proxmox-aiops/snapshot"
Documentation
CLAWHUB
149,598 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: proxmox-aiops
slug: proxmox-aiops
displayName: "Proxmox AIops"
summary: "Governed Proxmox VE VM/container ops — 43 MCP tools with audit, budget, undo & risk-tier guards."
license: MIT
homepage: https://github.com/AIops-tools/Proxmox-AIops
tags: [aiops, mcp, governance, proxmox]
description: >
Use this skill whenever the user needs to manage VMs and containers on Proxmox VE — list/inspect/configure VMs, power and lifecycle (start/stop/shutdown/reboot/reconfigure/clone/delete/migrate), snapshots (create/delete/list/rollback), disk grow/move, vzdump backups (create/list/restore), LXC containers (list/start/stop), cluster/node status, cluster resource inventory, async task polling + logs, free-VMID lookup, HA status, resource pools, firewall inspection, guest-agent ping, and storage listing.
Also use it to diagnose cluster health — rank nodes by CPU/memory/disk pressure and scan guests for saturation (read-only RCA).
Always use this skill for "list proxmox vms", "start proxmox vm", "stop proxmox vm", "proxmox snapshot", "proxmox backup", "restore proxmox vm", "resize proxmox disk", "proxmox vm status", "migrate proxmox vm", "proxmox container", "proxmox ha", "proxmox pool", "proxmox firewall", "list proxmox storage", "proxmox node pressure", or "why is proxmox slow" when the context is explicitly Proxmox / Proxmox VE / PVE.
Do NOT use for non-Proxmox hypervisors, Kubernetes, or cloud providers.
Broad coverage of common Proxmox operations, with a built-in governance harness (audit, token budget, undo, risk-tier labels).
installer:
kind: uv
package: proxmox-aiops
argument-hint: "[vmid or describe your Proxmox task]"
allowed-tools:
- Bash
metadata: {"openclaw":{"requires":{"anyBins":["proxmox-aiops","uvx"]},"optional":{"env":["PROXMOX_AIOPS_CONFIG","PROXMOX_TARGET_SECRET"]},"homepage":"https://github.com/AIops-tools/Proxmox-AIops","emoji":"🧱","os":["macos","linux"]}}
compatibility: >
Standalone, self-governed Proxmox VE operations. The governance harness (audit, token/runaway budget, undo, risk-tier labels) is bundled in the package — no external skill-family dependency.
All write operations are audited to a local SQLite DB under ~/.proxmox-aiops/ (relocatable via PROXMOX_AIOPS_HOME).
Credentials: Each Proxmox target requires a per-target secret env var in ~/.proxmox-aiops/.env following the pattern PROXMOX_<TARGET_NAME_UPPER>_SECRET (API token UUID for token auth, or login password). Secrets are never logged or echoed; .env should be chmod 600.
Destructive operations (vm stop/delete/snapshot-delete/snapshot-rollback, ct stop) require double confirmation at the CLI layer and support --dry-run. All write tools pass through the @governed_tool decorator (budget guard + audit + risk-tier tagging). Reversible writes record an inverse undo descriptor to the undo store.
Webhooks: none — no outbound network calls beyond the configured Proxmox API endpoint.
SSL: verify_ssl defaults to true; disable only for self-signed lab _meta.json
{
"ownerId": "kn7b067awq2s97bn3d7p5qfhw5827pxc",
"slug": "proxmox-aiops",
"version": "0.13.3",
"publishedAt": 1789453009059
}references/agent-guardrails.md
# Agent guardrails — running proxmox-aiops with a smaller / local model
If you drive these tools with a local model (Llama, Qwen, Mistral … via Goose,
Ollama, LM Studio, or any OpenAI-compatible runtime), you will get noticeably
better results with a short system prompt. This page gives you one, and — more
importantly — tells you which guardrails you **no longer need to write**, because
the tool now enforces them itself.
The distinction matters. A guardrail in a prompt is a request. A guardrail in the
harness is a guarantee. Anything below that we could move into the harness, we did.
## What the tool now enforces — do not waste prompt budget on these
| You might be tempted to prompt | Why you don't need to |
|---|---|
| "Don't invent a value when a field is missing" | A field the API did not return comes back as `null`, never as `""`. Absent and empty are distinguishable in the payload. |
| "Tell me if the output was cut off" | Anything with a `limit` returns `{"lines": [...], "returned": N, "limit": L, "truncated": true/false}`. Truncation is measured (one extra row is fetched), not guessed. |
| "Preserve the ordering / tell me what's most urgent" | `diagnose` findings carry an explicit 1-based `rank`, worst-first. Priority is in the payload, not implied by list position. |
| "Confirm before anything destructive" | Destructive operations require a `--dry-run`-able preview + double confirmation at the CLI. |
| "Log what you did" | Every call is audited to `~/.proxmox-aiops/audit.db` regardless of what the model says it did. |
## What still needs a prompt
These are model-behaviour problems the harness cannot fix from the outside.
Copy this into your agent's system prompt:
```text
You operate a Proxmox VE environment through the proxmox-aiops MCP tools.
TOOL USE
- Before answering any question about the current Proxmox environment, you MUST
call a tool. Never answer from memory or assumption.
- Actually invoke the tool. Do not describe the call you would make, and do not
emit an example JSON response in place of calling it.
- If a tool call fails, report the real error verbatim. Never fill the gap with
a plausible-sounding answer.
READING RESULTS
- Read the whole result before concluding. If a result contains a "truncated"
field that is true, say so and re-run with a higher limit instead of treating
the partial result as complete.
- A null field means the API did not return that value. Report it as "not
available" — never infer it.
- Report values exactly as returned. Do not normalise, translate, or prettify
status strings, severities, or IDs.
- When a diagnose result has findings, work in "rank" order and cite the
measured number in each finding's "detail".
SCOPE
- Separate observation from interpretation. State what the tools returned, then
any interpretation, clearly marked as such.
- Do not assert a capacity, performance, or availability problem unless a tool
result supports it.
- Do not add generic advice that doereferences/capabilities.md
# proxmox-aiops capabilities
43 MCP tools (25 read / 18 write). Every tool is wrapped with the bundled
`@governed_tool` harness (audit + budget + risk-tier + undo). Typical response
sizes are small high-signal summaries, not full API blobs.
## VM lifecycle (11)
| Tool | R/W | Inverse (undo) | Typical response |
|------|:---:|----------------|------------------|
| `vm_list` | R | — | ~50–500 tok (one row per VM) |
| `vm_get` | R | — | ~120 tok |
| `vm_config` | R | — | ~120 tok |
| `vm_start` | W | `vm_stop` | task UPID |
| `vm_stop` | W | `vm_start` | task UPID |
| `vm_shutdown` | W | `vm_start` | task UPID |
| `vm_reboot` | W | — (no inverse) | task UPID |
| `vm_reconfigure` | W | `vm_reconfigure` (prior cores/memory) | applied + previous |
| `vm_clone` | W | `vm_delete(newid)` | task UPID |
| `vm_delete` | W | — (irreversible, risk=high) | task UPID |
| `vm_migrate` | W | `vm_migrate` (back to source node) | task UPID |
## Snapshots (4)
| Tool | R/W | Inverse | Notes |
|------|:---:|---------|-------|
| `vm_list_snapshots` | R | — | name + description |
| `vm_snapshot_create` | W | `vm_snapshot_delete` | |
| `vm_snapshot_delete` | W | — | |
| `vm_snapshot_rollback` | W | — (irreversible, risk=high) | discards newer state |
## Disk (2)
| Tool | R/W | Inverse | Notes |
|------|:---:|---------|-------|
| `vm_resize_disk` | W | — (grow-only; shrink refused) | `+<N>G` or larger absolute |
| `vm_move_disk` | W | `vm_move_disk` (back to source storage) | task UPID |
## Backups — vzdump (3)
| Tool | R/W | Inverse | Notes |
|------|:---:|---------|-------|
| `backup_list` | R | — | archives on a storage, filterable by vmid |
| `vm_backup` | W | — | task UPID; mode snapshot/suspend/stop |
| `backup_restore` | W | `vm_delete` only when restored into a free vmid; none on forced overwrite (risk=high) | task UPID |
## LXC containers (3)
| Tool | R/W | Inverse |
|------|:---:|---------|
| `ct_list` | R | — |
| `ct_start` | W | `ct_stop` |
| `ct_stop` | W | `ct_start` |
## Cluster / tasks (7)
| Tool | R/W | Notes |
|------|:---:|-------|
| `node_list` | R | status, cpu load, memory |
| `cluster_status` | R | membership + quorum |
| `task_status` | R | poll an async UPID (clone/migrate/backup) |
| `cluster_resources` | R | `/cluster/resources` inventory (vm/node/storage filter) |
| `node_status` | R | one node: cpu, load average, memory, uptime |
| `task_log` | R | log lines of an async task by UPID |
| `next_vmid` | R | a free VMID for a new guest |
## HA (2)
| Tool | R/W | Notes |
|------|:---:|-------|
| `ha_status` | R | `{configured, entries}`; `configured` is true only when HA manages a resource — every cluster reports quorum/master/lrm rows regardless |
| `ha_resource_list` | R | HA-managed resources; empty when HA absent |
## Pools (2)
| Tool | R/W | Notes |
|------|:---:|-------|
| `pool_list` | R | poolid + comment |
| `pool_members` | R | members (VMs/CTs/storage) of a pool |
## Firewall — read-only (2)
| Tool | R/W | Notes |
|----references/cli-reference.md
# proxmox-aiops CLI reference All commands take `--target/-t <name>` (config target; omit for default) and, where relevant, `--node/-n <name>`. Destructive commands support `--dry-run`. ## VM lifecycle ```bash proxmox-aiops vm list [-t <target>] [-n <node>] proxmox-aiops vm get <vmid> proxmox-aiops vm config <vmid> proxmox-aiops vm start <vmid> proxmox-aiops vm stop <vmid> [--dry-run] # hard power-off (double confirm) proxmox-aiops vm shutdown <vmid> [--dry-run] # graceful ACPI proxmox-aiops vm reboot <vmid> proxmox-aiops vm reconfigure <vmid> [--cores N] [--memory MiB] [--dry-run] proxmox-aiops vm clone <vmid> --newid <id> [--name <name>] proxmox-aiops vm delete <vmid> [--dry-run] # irreversible (double confirm) proxmox-aiops vm migrate <vmid> --to-node <node> [--offline] [--dry-run] ``` ## Snapshots ```bash proxmox-aiops vm snapshot-create <vmid> --name <snap> proxmox-aiops vm snapshot-list <vmid> proxmox-aiops vm snapshot-delete <vmid> --name <snap> [--dry-run] # double confirm proxmox-aiops vm snapshot-rollback <vmid> --name <snap> [--dry-run] # irreversible ``` ## LXC containers ```bash proxmox-aiops ct list [-n <node>] proxmox-aiops ct start <vmid> proxmox-aiops ct stop <vmid> [--dry-run] # double confirm ``` ## Cluster / async tasks ```bash proxmox-aiops cluster nodes proxmox-aiops cluster status # membership + quorum proxmox-aiops cluster task-status <UPID> # poll a clone/migrate/backup task ``` ## Storage ```bash proxmox-aiops storage list [-n <node>] proxmox-aiops storage content <storage> [--content iso|images|backup|vztmpl] ``` ## Diagnostics & MCP ```bash proxmox-aiops doctor # verify connectivity + credentials proxmox-aiops mcp # start the MCP server (stdio) ``` > Proxmox writes are asynchronous and return a task UPID. Poll completion with > `cluster task-status <UPID>` rather than re-issuing the operation.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/zw008/skills/proxmox-aiops",
"sourceUrl": "https://clawhub.ai/zw008/skills/proxmox-aiops",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T19:54:31.160Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-zw008-proxmox-aiops/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-zw008-proxmox-aiops/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T19:54:31.160Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2.1K downloads",
"href": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceUrl": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T19:54:31.160Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.13.3",
"href": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceUrl": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-15T06:16:49.059Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-zw008-proxmox-aiops/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-zw008-proxmox-aiops/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.13.3",
"description": "proxmox-aiops 0.13.3 - Removed the skill-card.md file from the project. - No functional or user-facing changes.",
"href": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceUrl": "https://clawhub.ai/zw008/proxmox-aiops",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-15T06:16:49.059Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
