Install
openclaw skills install vmware-hardenUse this skill whenever the user needs to perform VMware compliance auditing, baseline checking, or drift detection on vSphere/ESXi/NSX environments. Directly handles: CIS / DISA STIG / vSphere SCG / 等保 2.0 三级 / PCI-DSS scans; custom YAML baselines; LLM-driven remediation suggestions; web dashboard. Always use this skill for "scan compliance", "check baseline", "audit etcd", "check 等保", "drift detection", "compliance report" when the context is explicitly VMware/vSphere/ESXi. Do NOT use for general vSphere monitoring (use vmware-monitor or vmware-aiops), network changes (use vmware-nsx), or executing remediations directly (this skill only suggests; execution goes through vmware-pilot).
openclaw skills install vmware-hardenDisclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc. "VMware" and "vSphere" are trademarks of Broadcom. Source code is publicly auditable at github.com/zw008/VMware-Harden under the MIT license.
AI-native VMware compliance scanner — built-in CIS / DISA STIG / vSphere SCG / 等保 2.0 三级 / PCI-DSS baselines, drift detection, LLM-driven remediation advice, and a web dashboard.
Companion skills: vmware-aiops (inventory + collectors data source; host/VM remediation target), vmware-monitor (read-only inspection), vmware-storage (datastore remediation target), vmware-nsx (segment/gateway evidence), vmware-nsx-security (DFW evidence + remediation target), vmware-aria (metrics correlation), vmware-avi (load balancer evidence), vmware-vks (Tanzu Kubernetes evidence), vmware-pilot (remediation execution with approval gates), vmware-policy (audit log). See references/cross-skill-workflows.md for end-to-end remediation flows that span pilot + sibling skills.
| Category | Tools | Count | Read or Write |
|---|---|---|---|
| Baseline Management | 4 built-in baselines (CIS ESXi 8.0, vSphere SCG v8, 等保 2.0 L3, PCI-DSS 4.0) + custom YAML loader | 4+N | Read |
| Scanning | Multi-collector (vCenter, ESXi, NSX, vSAN, K8s) → typed Twin store | 1 pipeline | Read (no target writes) |
| Drift Detection | Snapshot diff, rule status diff, evidence diff | 3 types | Read |
| Remediation Advisor | LLM-driven (Anthropic) suggestions per violation; mock fallback when no key | 1 advisor | Read |
| Web Dashboard | FastAPI + Jinja2 read-only UI for violations / drift / advice | 1 server | Read |
| MCP Server | Compliance query tools | 6 | All Read |
uv tool install vmware-harden
vmware-harden baseline list
For first-time use, ensure a vmware-aiops target is configured (harden uses aiops collectors) and optionally set ANTHROPIC_API_KEY for live remediation advice.
Use vmware-harden when the user needs to:
Do NOT use this skill when:
| User Intent | Recommended Skill |
|---|---|
| "Scan ESXi for CIS compliance" | vmware-harden ← this skill |
| "Check 等保 2.0 三级" | vmware-harden |
| "What changed since last week?" (drift) | vmware-harden |
| "Fix this violation now" | vmware-pilot (approval-gated execution) |
| "List VMs / hosts / alarms" | vmware-monitor |
| "Reconfigure / power / migrate VM" | vmware-aiops |
| "Edit DFW rule" | vmware-nsx-security |
| "Browse audit log" | vmware-policy (vmware-audit log) |
Install: uv tool install vmware-harden
Verify aiops is configured: vmware-aiops doctor — harden reuses aiops connection for the vCenter collector
List baselines: vmware-harden baseline list — confirm dengbao-2.0-level3-vmware is present
Scan: vmware-harden scan --baseline dengbao-2.0-level3-vmware --target prod-vcenter
Report: vmware-harden report --format json > violations.json (or vmware-harden web for the rendered dashboard)
Failure branch: If you see ConnectError: vmware-aiops target not found, the aiops side is not configured. Run vmware-aiops init first; harden cannot scan without a working collector.
Author YAML under ~/.vmware-harden/baselines/my-corp.yaml (see references for schema)
Validate: vmware-harden baseline validate ~/.vmware-harden/baselines/my-corp.yaml
Import: vmware-harden baseline import ~/.vmware-harden/baselines/my-corp.yaml
Scan: vmware-harden scan --baseline my-corp --target prod-vcenter
Failure branch: baseline validate failure usually means a check.path references a node type the collectors do not produce (e.g. nsx.gateway.* when no NSX collector ran). See references/cli-reference.md for valid node paths and the baseline schema.
Run scan today: vmware-harden scan --target prod-vcenter --baseline cis-vmware-esxi-8.0-subset
Run scan again next week (or after a change window): same command
View drift: vmware-harden drift (renders the latest snapshot vs its prior snapshot for the same target)
Get advice on critical drift: vmware-harden advise --violation-id <id> or vmware-harden advise --all-critical (uses ANTHROPIC_API_KEY; falls back to mock template if unset)
Open web view: vmware-harden web --port 8080 then navigate to /drift
Failure branch: If vmware-harden drift reports No drift detected since previous snapshot, both scans likely ran against the same state. Ensure two scans actually completed against the same --target; the Twin DB at ~/.vmware-harden/twin.duckdb must contain at least two snapshots for that target.
| Scenario | Recommended | Why |
|---|---|---|
| Local CLI scans by an operator | CLI | Direct, scripts well into CI |
| AI agent integration | MCP | 6 read-only tools, structured responses |
| Reviewing posture interactively | Web | vmware-harden web — sortable tables, drift timeline |
| CI/CD pipeline gates | CLI | Exit code reflects compliance pass/fail |
| Category | Tool | Description |
|---|---|---|
| Baseline | list_baselines | All built-in + imported baselines (id, framework, version) |
| Baseline | get_baseline_rules | Rules for a given baseline_id (severity, references) |
| Violation | list_violations | Current violations, filterable by severity |
| Violation | get_remediation | Remediation suggestion for a violation_id (LLM or mock) |
| Drift | list_drift_events | Recent drift events from snapshot diff |
| Scan | scan_target | Trigger a scan against a target (read-only on the target) |
All 6 tools are read-only with respect to vSphere/NSX. Writes to the local Twin DuckDB are scan-internal and do not modify any VMware resource. Actual remediation execution is intentionally deferred to vmware-pilot (approval-gated).
vmware-harden baseline list
vmware-harden baseline import <path>
vmware-harden baseline validate <path>
vmware-harden scan --baseline <id> --target <name>
vmware-harden report [--format text|json]
vmware-harden drift [--format text|json]
vmware-harden advise (--violation-id <id> | --all-critical)
vmware-harden web [--host 127.0.0.1] [--port 8080]
Full CLI reference: see references/cli-reference.md Full capabilities table with response token estimates: see references/capabilities.md
Harden does not connect to vCenter directly — it relies on vmware-aiops collectors. Run vmware-aiops doctor and confirm the --target name matches an aiops target.
ANTHROPIC_API_KEY not set — advice looks genericThe advisor falls back to a deterministic mock template when no API key is present. Set export ANTHROPIC_API_KEY=... in your shell or in ~/.vmware-harden/.env for live LLM-driven suggestions.
uvx reports "UnknownIssuer" behind a corporate TLS proxyDon't use uvx for the MCP server in this environment. Use the entry point installed by uv tool install:
{
"command": "vmware-harden-mcp",
"args": []
}
This avoids uvx re-resolving PyPI through the corporate MitM proxy. As a workaround, UV_NATIVE_TLS=true lets uv use the system CA store. See CLAUDE.md 踩坑 #25.
Run at least one scan first: vmware-harden scan --baseline cis-vmware-esxi-8.0-subset --target <t>. The DuckDB file is created on first scan at ~/.vmware-harden/twin.duckdb (override with VMWARE_HARDEN_DB).
The 等保 baseline references node types from multiple collectors (vCenter advanced settings + ESXi NTP + NSX DFW). If only the vCenter collector ran, rules referencing nsx.* paths skip with status "no evidence". Run a scan with all collectors enabled, or filter the baseline to only the relevant rules.
Verify the dashboard is reading the same DuckDB. If VMWARE_HARDEN_DB is set in your shell but not in the systemd/launchd unit running vmware-harden web, the web server reads the default ~/.vmware-harden/twin.duckdb while your scans wrote elsewhere.
~/.vmware-harden/baselines/*.yaml; Twin DuckDB at ~/.vmware-harden/twin.duckdb. No passwords are stored — all credentials live in the upstream skill (~/.vmware-aiops/.env).ANTHROPIC_API_KEY is set for advisor suggestions, and (b) the local web dashboard bound to 127.0.0.1 by default.api.anthropic.com use system TLS verification (no opt-out)._sanitize() (truncate ≤500 chars, strip C0/C1 control characters).All MCP operations are audited via the @vmware_tool decorator (vmware-policy dependency) to ~/.vmware/audit.db. View with vmware-audit log --last 20.
Full setup / security / AI platform compatibility: see references/setup-guide.md