Get the FREE Ultimate OpenClaw Setup Guide →

hcloud-servers

npx machina-cli add skill danjdewhurst/hcloud-skills/hcloud-servers --openclaw
Files (1)
SKILL.md
11.7 KB

Hetzner Cloud Servers

Server Lifecycle

Create a Server

hcloud server create [options] --name <name> --type <server-type> --image <image>

Flags:

  • --name <name> - Server name (required)
  • --type <server-type> - Server Type ID or name (required)
  • --image <image> - Image ID or name (required)
  • --location <location> - Location ID or name
  • --ssh-key <key> - SSH Key ID or name (can be specified multiple times)
  • --network <network> - Network ID or name to attach to (can be specified multiple times)
  • --firewall <firewall> - Firewall ID or name to attach to (can be specified multiple times)
  • --volume <volume> - Volume ID or name to attach (can be specified multiple times)
  • --user-data-from-file <file> - Read user data from file (use - for stdin)
  • --label <key=value> - User-defined labels (can be specified multiple times)
  • --placement-group <group> - Placement Group ID or name
  • --primary-ipv4 <ip> - Primary IPv4 ID or name
  • --primary-ipv6 <ip> - Primary IPv6 ID or name
  • --enable-backup - Enable automatic backups
  • --enable-protection <delete|rebuild> - Enable protection (values: delete, rebuild)
  • --start-after-create - Start Server after creation (default: true)
  • --without-ipv4 - Create without IPv4
  • --without-ipv6 - Create without IPv6
  • --allow-deprecated-image - Allow use of deprecated images
  • --automount - Automount Volumes after attach
  • -o, --output json|yaml - Output format

List Servers

hcloud server list [options]

Columns: id, name, status, type, ipv4, ipv6, location, datacenter, labels, protection, volumes, private_net, placement_group, backup_window, created, age, rescue_enabled, locked, included_traffic, ingoing_traffic, outgoing_traffic, primary_disk_size

Flags:

  • -l, --selector <label> - Filter by label selector
  • -s, --sort <field> - Sort results
  • --status <status> - Filter by status (can be specified multiple times)
  • -o, --output noheader|columns=...|json|yaml - Output options

Describe a Server

hcloud server describe [options] <server>

Flags:

  • -o, --output json|yaml|format - Output format

Delete Servers

hcloud server delete <server>...

Accepts one or more server IDs or names.

Update a Server

hcloud server update [options] <server>

Flags:

  • --name <new-name> - New server name

Power Management

Power On

hcloud server poweron <server>

Power Off (Hard)

hcloud server poweroff <server>

Immediately cuts power. Use shutdown for graceful ACPI shutdown.

Shutdown (Graceful ACPI)

hcloud server shutdown [options] <server>

Sends an ACPI shutdown request. The OS must support ACPI.

Flags:

  • --wait - Wait for the server to shut down before returning
  • --wait-timeout <duration> - Timeout for waiting (default: 30s)

Reboot (Graceful)

hcloud server reboot <server>

Reset (Hard)

hcloud server reset <server>

Hard reset, equivalent to pressing the physical reset button.

Access

SSH into a Server

hcloud server ssh [options] <server> [--] [ssh options] [command [argument...]]

Flags:

  • -u, --user <user> - SSH username (default: root)
  • -p, --port <port> - SSH port (default: 22)
  • --ipv6 - Connect via IPv6 address

Pass additional SSH options after --.

Get Server IP

hcloud server ip [--ipv6] <server>

Flags:

  • -6, --ipv6 - Print the first address of the server's primary IPv6 network

Request VNC Console

hcloud server request-console [options] <server>

Returns a WebSocket URL and password for VNC console access.

Flags:

  • -o, --output json|yaml - Output format

Server Modifications

Change Server Type

hcloud server change-type [--keep-disk] <server> <server-type>

Server must be stopped first. Requires a reboot after the change.

Flags:

  • --keep-disk - Keep disk size of current type (enables downgrading later)

Rebuild Server

hcloud server rebuild [options] --image <image> <server>

Reinstalls the server from an image. All data on the server will be lost.

Flags:

  • --image <image> - Image ID or name (required)
  • --allow-deprecated-image - Allow use of deprecated images
  • --user-data-from-file <file> - Read user data from file (use - for stdin)

Create Image from Server

hcloud server create-image [options] --type <snapshot|backup> <server>

Flags:

  • --type <snapshot|backup> - Image type (required)
  • --description <text> - Image description
  • --label <key=value> - Labels (can be specified multiple times)

Rescue Mode

Enable Rescue Mode

hcloud server enable-rescue [options] <server>

Outputs a root password. Server must be rebooted to enter rescue mode.

Flags:

  • --ssh-key <key> - SSH Key ID or name to inject (can be specified multiple times)
  • --type <type> - Rescue type (default: linux64)

Disable Rescue Mode

hcloud server disable-rescue <server>

Reset Root Password

hcloud server reset-password [options] <server>

Flags:

  • -o, --output json|yaml - Output format

Backups

Enable Backups

hcloud server enable-backup <server>

Disable Backups

hcloud server disable-backup <server>

Network Attachment

Attach to Network

hcloud server attach-to-network [options] --network <network> <server>

Flags:

  • -n, --network <network> - Network ID or name (required)
  • --ip <ip> - IP address to assign (auto-assigned if omitted)
  • --ip-range <cidr> - Subnet CIDR to attach to (auto-assigned if omitted)
  • --alias-ips <ip> - Additional alias IPs (can be specified multiple times)

Detach from Network

hcloud server detach-from-network --network <network> <server>

Flags:

  • -n, --network <network> - Network ID or name (required)

Change Alias IPs

hcloud server change-alias-ips [options] --network <network> <server>

Flags:

  • -n, --network <network> - Network ID or name (required)
  • --alias-ips <ips> - New alias IPs
  • --clear - Remove all alias IPs

ISO Management

Attach ISO

hcloud server attach-iso <server> <iso>

Detach ISO

hcloud server detach-iso <server>

Placement Groups

Add Server to Placement Group

hcloud server add-to-placement-group --placement-group <group> <server>

Flags:

  • -g, --placement-group <group> - Placement Group ID or name (required)

Remove Server from Placement Group

hcloud server remove-from-placement-group <server>

Create Placement Group

hcloud placement-group create [options] --name <name> --type <type>

Flags:

  • --name <name> - Name (required)
  • --type <type> - Type (required, e.g. spread)
  • --label <key=value> - Labels (can be specified multiple times)
  • -o, --output json|yaml - Output format

List Placement Groups

hcloud placement-group list [options]

Columns: id, name, servers, type, age, created

Flags:

  • -l, --selector <label> - Filter by label selector
  • -s, --sort <field> - Sort results
  • -o, --output noheader|columns=...|json|yaml - Output options

Describe Placement Group

hcloud placement-group describe [options] <placement-group>

Flags:

  • -o, --output json|yaml|format - Output format

Delete Placement Groups

hcloud placement-group delete <placement-group>...

Labels and Protection

Add Label

hcloud server add-label [--overwrite] <server> <label>...

Labels use key=value format.

Flags:

  • -o, --overwrite - Overwrite if label key already exists

Remove Label

hcloud server remove-label <server> (--all | <label>...)

Flags:

  • -a, --all - Remove all labels

Enable Protection

hcloud server enable-protection <server> (delete|rebuild)...

Protection types: delete, rebuild. Specify one or both.

Disable Protection

hcloud server disable-protection <server> (delete|rebuild)...

Set Reverse DNS

hcloud server set-rdns [--ip <ip>] (--hostname <hostname> | --reset) <server>

Flags:

  • -i, --ip <ip> - IP address to set rDNS for
  • -r, --hostname <hostname> - Hostname for the PTR record
  • --reset - Reset rDNS to default value

Server Types (Read-Only)

List Server Types

hcloud server-type list [options]

Columns: name, id, description, cores, cpu_type, architecture, memory, disk, storage_type, category, included_traffic, traffic, deprecated

Flags:

  • -l, --selector <label> - Filter by label selector
  • -s, --sort <field> - Sort results
  • -o, --output noheader|columns=...|json|yaml - Output options

Describe Server Type

hcloud server-type describe [options] <server-type>

Flags:

  • -o, --output json|yaml|format - Output format

Images

List Images

hcloud image list [options]

Columns: name, id, type, os_flavor, os_version, description, architecture, disk_size, image_size, created, age, deprecated, bound_to, status, protection, rapid_deploy, labels, created_from

Flags:

  • -t, --type <type> - Filter by type: system, app, snapshot, backup
  • -a, --architecture <arch> - Filter by architecture: x86, arm
  • -l, --selector <label> - Filter by label selector
  • -s, --sort <field> - Sort results
  • -o, --output noheader|columns=...|json|yaml - Output options

Describe Image

hcloud image describe [options] <image>

Flags:

  • -a, --architecture <arch> - Architecture (default: x86)
  • -o, --output json|yaml|format - Output format

Delete Images

hcloud image delete <image>...

Update Image

hcloud image update [options] <image>

Flags:

  • --description <text> - Image description
  • --type <type> - Image type

Image Labels and Protection

hcloud image add-label [--overwrite] <image> <label>...
hcloud image remove-label <image> (--all | <label>...)
hcloud image enable-protection <image> delete
hcloud image disable-protection <image> delete

Infrastructure Reference

Locations

hcloud location list [options]

Columns: name, id, description, country, city, network_zone, latitude, longitude

Flags:

  • -o, --output noheader|columns=...|json|yaml - Output options
hcloud location describe [options] <location>

Flags:

  • -o, --output json|yaml|format - Output format

Datacenters (Deprecated)

Datacenters are deprecated. Use locations instead.

hcloud datacenter list [options]

Columns: name, id, description, location

hcloud datacenter describe [options] <datacenter>

ISOs

hcloud iso list [options]

Columns: id, name, description, type, architecture

Flags:

  • --architecture <arch> - Filter by architecture: x86, arm
  • --type <type> - Filter by type: public, private (default: both)
  • --include-architecture-wildcard - Include ISOs with unknown architecture (for custom ISOs with architecture filter)
  • -o, --output noheader|columns=...|json|yaml - Output options
hcloud iso describe [options] <iso>

Flags:

  • -o, --output json|yaml|format - Output format

List All Resources

hcloud all list [options]

Lists all project resources (servers, images, volumes, networks, firewalls, etc.). Does not include static/public resources like locations or public ISOs.

Flags:

  • --paid - Only list resources that cost money
  • -l, --selector <label> - Filter by label selector
  • -o, --output json|yaml - Output format

Source

git clone https://github.com/danjdewhurst/hcloud-skills/blob/main/skills/hcloud-servers/SKILL.mdView on GitHub

Overview

This skill helps you create, manage, and operate Hetzner Cloud servers using the CLI. It covers the full lifecycle—from provisioning and power management to SSH access, images, backups, rescue mode, ISOs, placement groups, and datacenter locations—so you can deploy reliable infrastructure quickly.

How This Skill Works

Operates via the hcloud CLI. You provide required flags for server creation (name, type, image) and can attach SSH keys, networks, volumes, and other options. For ongoing operations, use power management commands (poweron, poweroff, reboot, reset) and access tools (ssh, ip, request-console) to configure and manage servers.

When to Use It

  • Provision a new Hetzner Cloud server with a specific name, type, and image
  • Perform graceful maintenance using shutdown, reboot, or power operations
  • SSH into a server and manage network/addresses for configuration
  • Attach volumes, enable backups, use rescue mode or ISOs for recovery
  • Inspect and compare servers and datacenters via list/describe

Quick Start

  1. Step 1: Install the hcloud CLI and run hcloud login
  2. Step 2: Create a server with required flags (name, type, image) and optional SSH key, location, and network
  3. Step 3: Retrieve the server IP and connect via SSH, or use the VNC console for graphical access

Best Practices

  • Always specify an SSH key on create and keep it secure
  • Enable automatic backups and protection options when appropriate
  • Use placement groups and networks to optimize latency and security
  • Prefer graceful shutdowns and documented reboot sequences over hard resets
  • Tag resources with labels and organize with volumes and datacenters

Example Use Cases

  • Create a web server: hcloud server create --name web01 --type cx31 --image ubuntu-22.04 --location ams1 --ssh-key mykey
  • List all servers: hcloud server list
  • SSH into a server: hcloud server ssh web01
  • Reboot a server: hcloud server reboot web01
  • Request VNC console: hcloud server request-console web01

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers