NAME
hcloud.pl - Hetzner Cloud CLI (Perl implementation)
VERSION
version 0.001
SYNOPSIS
# List servers
hcloud.pl server
# Create a server (minimal)
hcloud.pl server create --name my-server --type cx22 --image debian-12
# Create a server (full options)
hcloud.pl server create \
--name my-server \
--type cx22 \
--image debian-12 \
--location fsn1 \
--ssh-key my-key \
--label env=prod \
--label team=ops \
--user-data-from-file cloud-init.yaml
# Create without public IPv4
hcloud.pl server create --name private-server --type cx22 --image debian-12 \
--without-ipv4 --network 12345
# Delete a server
hcloud.pl server delete 12345
# Describe a server
hcloud.pl server describe 12345
# List server types
hcloud.pl servertype
# JSON output
hcloud.pl -o json server
DESCRIPTION
Perl implementation of the Hetzner Cloud CLI tool (hcloud). This script provides a command-line interface to the Hetzner Cloud API.
To avoid conflicts with the official hcloud binary, this script is named hcloud.pl. You can create an alias if desired:
alias hcloud='perl /path/to/hcloud.pl'
NAME
hcloud.pl - Hetzner Cloud CLI (Perl implementation)
OPTIONS
- -t, --token=TOKEN
-
Hetzner Cloud API token. Defaults to
HETZNER_API_TOKENenvironment variable. - -o, --output=FORMAT
-
Output format:
table(default) orjson.
COMMANDS
server
Manage servers.
server create
Create a new server. Required options: --name, --type, --image.
hcloud.pl server create --name web1 --type cx22 --image debian-12
Options:
--name Server name (required)
--type Server type, e.g., cx22, cpx11 (required)
--image Image name, e.g., debian-12 (required)
--location Location: fsn1, nbg1, hel1, ash, hil
--datacenter Datacenter, e.g., fsn1-dc14
--ssh-key SSH key name or ID (repeatable)
--label Label as key=value (repeatable)
--network Network ID to attach (repeatable)
--volume Volume ID to attach (repeatable)
--firewall Firewall ID (repeatable)
--placement-group Placement group ID or name
--user-data-from-file Path to cloud-init file
--without-ipv4 Create without public IPv4
--without-ipv6 Create without public IPv6
--primary-ipv4 Assign existing Primary IPv4
--primary-ipv6 Assign existing Primary IPv6
--automount Automount attached volumes
--no-start-after-create Don't start server after creation
server list
List all servers.
server describe <ID>
Show details for a server.
server delete <ID>
Delete a server.
sshkey
Manage SSH keys.
image
List images. Use --type to filter by type (system, snapshot, backup).
servertype
List available server types.
location
List available locations.
datacenter
List available datacenters.
ENVIRONMENT
HETZNER_API_TOKEN-
Default API token if not specified via
--token.
SEE ALSO
WWW::Hetzner::CLI, WWW::Hetzner::Cloud, https://docs.hetzner.cloud/
SUPPORT
Source Code
The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)
https://github.com/Getty/p5-www-hetzner
git clone https://github.com/Getty/p5-www-hetzner.git
AUTHOR
Torsten Raudssus <torsten@raudssus.de>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.