esxi

Manage VMware ESXi hosts and virtual machines via SSH and vim-cmd. Use when interacting with ESXi infrastructure for VM operations (list, start, stop, snapshot), host monitoring, resource checking, or troubleshooting ESXi servers.

7 stars

Best use case

esxi is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Manage VMware ESXi hosts and virtual machines via SSH and vim-cmd. Use when interacting with ESXi infrastructure for VM operations (list, start, stop, snapshot), host monitoring, resource checking, or troubleshooting ESXi servers.

Teams using esxi should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/esxi/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/dlewis7444/esxi/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/esxi/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How esxi Compares

Feature / AgentesxiStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Manage VMware ESXi hosts and virtual machines via SSH and vim-cmd. Use when interacting with ESXi infrastructure for VM operations (list, start, stop, snapshot), host monitoring, resource checking, or troubleshooting ESXi servers.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# ESXi Management

## Overview

Interact with VMware ESXi hypervisors using native tools (vim-cmd, esxcli) over SSH. This skill provides workflows for VM lifecycle management, host monitoring, and common ESXi operations.

## Connection Requirements

- SSH access to ESXi host (privileged account - typically root for vim-cmd)
- Hostname/IP and credentials configured for passwordless SSH or key auth
- vim-cmd and esxcli available on target host

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `ESXI_USER` | `root` | SSH username for ESXi host |

Override example:
```bash
ESXI_USER=admin ./vm-control.sh esxi-host list
```

## Core Operations

### VM Management

**List all VMs:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/getallvms"
```

**Get VM power state:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/power.getstate <vmid>"
```

**Power operations:**
```bash
# Start VM
ssh root@esxi-host "vim-cmd vmsvc/power.on <vmid>"

# Stop VM (graceful shutdown)
ssh root@esxi-host "vim-cmd vmsvc/power.shutdown <vmid>"

# Force power off
ssh root@esxi-host "vim-cmd vmsvc/power.off <vmid>"

# Reboot VM
ssh root@esxi-host "vim-cmd vmsvc/power.reboot <vmid>"
```

### Snapshot Management

**List snapshots:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/snapshot.get <vmid>"
```

**Create snapshot:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/snapshot.create <vmid> <snapshot-name>"
```

**Revert to snapshot:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/snapshot.revert <vmid> <snapshot-id>"
```

**Remove snapshot:**
```bash
ssh root@esxi-host "vim-cmd vmsvc/snapshot.remove <vmid> <snapshot-id>"
```

### Host Information

**System info:**
```bash
ssh root@esxi-host "esxcli system version get"
ssh root@esxi-host "esxcli system hostname get"
```

**Uptime and health:**
```bash
ssh root@esxi-host "uptime"
ssh root@esxi-host "esxcli hardware platform get"
```

**Storage info:**
```bash
ssh root@esxi-host "esxcli storage filesystem list"
ssh root@esxi-host "esxcli storage core device list"
```

**Network info:**
```bash
ssh root@esxi-host "esxcli network ip interface ipv4 get"
ssh root@esxi-host "esxcli network vswitch standard list"
```

### Resource Monitoring

**CPU/Memory usage:**
```bash
ssh root@esxi-host "esxcli hardware memory get"
ssh root@esxi-host "esxtop -b -n 1 | head"
```

**Running processes:**
```bash
ssh root@esxi-host "esxcli system process list"
```

## VM Creation

Create new VMs using `vm-create.sh` which builds VMX files directly and registers them with `vim-cmd solo/registervm`.

### Quick Start

```bash
# Basic VM (1 CPU, 1GB RAM, 16GB disk)
./vm-create.sh esxi-host myvm "datastore1"

# Custom specs (2 CPUs, 4GB RAM, 50GB disk, Rocky Linux)
./vm-create.sh esxi-host myvm "datastore1" 2 4096 50 rockylinux-64 "VM Network" "[datastore1] ISOs/rocky.iso"
```

### How It Works

The script creates VMs by:
1. Creating the VM directory on the datastore
2. Creating a virtual disk with `vmkfstools`
3. Building a VMX configuration file with proper PCI bridge support
4. Registering the VM with `vim-cmd solo/registervm`

### Safety Features

- **Duplicate check**: Exits if VM name already exists
- **Proper PCI config**: Includes pciBridge entries required for ESXi 6.x-8.x
- **EFI boot**: Uses UEFI with secure boot enabled
- **Manual power-on**: Does not start automatically (verification step)

### Guest OS Identifiers

Format varies by ESXi version. Common values:
- `rockylinux-64` - Rocky Linux 8/9 (ESXi 7.0+)
- `rhel9-64` - RHEL 9
- `centos8-64` - CentOS 8  
- `ubuntu-64` - Ubuntu
- `otherLinux64Guest` - Generic Linux (universal fallback)

Note: ESXi 8.x may show `rockylinux_64Guest` in some docs but accepts `rockylinux-64`.

### Post-Creation Steps

1. Verify VM was created: `./vm-control.sh esxi-host list`
2. Configure kickstart/network settings if needed
3. Power on: `./vm-control.sh esxi-host start <vmid>`
4. Monitor via ESXi console

## Troubleshooting

### SSH Key Authentication

If SSH connections fail with permission denied or password prompts, the ESXi host may need the SSH public key configured.

**On the ESXi host, add the public key:**
```bash
esxcli system ssh key add -u <username> -k "<public-key-contents>"
```

**On the local client, ensure ~/.ssh/config includes a Host entry that matches your connection string:**
```
Host esxi-host
    HostName <esxi-ip-or-hostname>
    User <username>
    IdentityFile ~/.ssh/id_rsa
```

Note: SSH config `Host` entries are matched literally. If you connect with the short hostname, your config must use the short hostname. If you use the FQDN, your config must match the FQDN.

## Resources

### scripts/
- `vm-control.sh` - Wrapper for common VM operations (supports ESXI_USER env var)
- `vm-create.sh` - Create new VMs with proper PCI bridge config (supports ESXI_USER env var)
- `host-info.sh` - Gather host statistics and health (supports ESXI_USER env var)

Related Skills

openbot-esxi

7
from Demerzels-lab/elsamultiskillagent

Zero-touch Debian 13 VM deployment on VMware ESXi 8.

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.

agora

7
from Demerzels-lab/elsamultiskillagent

Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.

surf-check

7
from Demerzels-lab/elsamultiskillagent

Surf forecast decision engine.

jinko-flight-search

7
from Demerzels-lab/elsamultiskillagent

Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.