Skip to content

Releases: tomkp/hetzner-cli

v2.0.0 - CLI/TUI Separation

Choose a tag to compare

@tomkp tomkp released this 14 Jan 09:54
39ab578

Breaking Changes

  • CLI renamed: Binary changed from hetzner to hz
  • Non-interactive: All interactive prompts removed - specify options via flags
  • setup command removed: Use hz config set token <token> instead
  • Delete confirmations: Use --yes flag to skip confirmation in scripts

What's Changed

This release completes the separation of the CLI and TUI into distinct packages:

  • @tomkp/hetzner-cli (hz): Pure CLI for scripting and automation
  • @tomkp/hetzner-tui (hetzner): Interactive terminal UI (separate package)

Removed Dependencies

  • React, Ink, and all interactive UI libraries removed
  • Package is now lightweight with only 3 dependencies

Migration

# Old
hetzner servers list
hetzner servers create  # prompted for options

# New
hz servers list
hz servers create --name my-server --type cx22 --image ubuntu-24.04
hz servers delete my-server --yes  # skip confirmation

Configuration

hz config set token YOUR_API_TOKEN
hz config set dnsToken YOUR_DNS_TOKEN

Or use environment variables: HETZNER_TOKEN, HETZNER_DNS_TOKEN

v1.2.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 16:57
1010a5e

New Features

  • Add full interactive mode for SSH Keys
  • Add full interactive mode for Networks
  • Add full interactive mode for Firewalls
  • Add full interactive mode for Floating IPs
  • Add full interactive mode for Load Balancers
  • Add full interactive mode for Certificates
  • Add full interactive mode for Primary IPs
  • Add full interactive mode for Placement Groups
  • Add DNS interactive mode

Improvements

  • Fix padding calculation in Header component
  • Expand DNS screen test coverage

v1.1.1

Choose a tag to compare

@tomkp tomkp released this 12 Jan 16:21
c5ff372

Changes

  • Refactor Header component to improve readability and padding calculations

v1.1.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 15:40
5442fc1

What's New

Interactive Menu Mode

Run hz or hetzner without arguments to launch an interactive menu-driven interface.

Features:

  • Welcome screen with gradient ASCII header
  • Main menu with all 12 resource categories
  • Navigate with arrow keys, Enter to select, Esc to go back, q to quit
  • Full interactive workflows for Servers (list, power management, delete)
  • Full interactive workflows for Volumes (list, delete)
  • Info screen showing locations, server types, and images

Traditional CLI commands still work as before when arguments are provided.

Full Changelog

v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 12:05
5d4c47b

hetzner-cli v1.0.0

First stable release with comprehensive support for Hetzner Cloud and DNS resources.

Features

Cloud Resources:

  • Servers - full lifecycle management (create, delete, power on/off, reboot)
  • SSH Keys - manage SSH keys for server access
  • Volumes - create, attach, detach, resize, delete
  • Networks - private network management
  • Firewalls - create, delete, and manage rules (add-rule, remove-rule)
  • Floating IPs - create, assign, unassign, delete
  • Load Balancers - create, delete, manage targets
  • Certificates - managed and uploaded certificates with retry support
  • Primary IPs - create, assign, unassign, delete
  • Placement Groups - server placement management

DNS Resources:

  • DNS Zones - zone management
  • DNS Records - A, AAAA, CNAME, MX, TXT, and other record types

Developer Experience:

  • Interactive setup wizard (hetzner setup)
  • JSON output support (--json flag)
  • Command aliases for faster typing (hz, fips, lbs, certs, pips, pgs)
  • Comprehensive input validation
  • Contextual error messages with helpful hints
  • 322 tests with 70%+ coverage

Installation

npm install -g @tomkp/hetzner-cli

Quick Start

# Interactive setup
hetzner setup

# Or set token manually
hetzner config set token YOUR_API_TOKEN

# List servers
hetzner servers list

v0.6.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 11:21
8150b4b

What's New

Interactive Mode for Resource Creation

This release adds interactive mode support for server and volume creation, making it easier to create resources without remembering all the required flags.

Server Creation (#77)

When running hetzner servers create without all required flags, the CLI now interactively prompts for:

  • Server name (text input)
  • Server type (select from available types with specs)
  • Image (select from available system images)

Volume Creation (#79)

When running hetzner volumes create without all required flags, the CLI now interactively prompts for:

  • Volume name (text input)
  • Volume size in GB (text input)
  • Location (select from available locations)

New UI Components

  • Added textInput() helper for text input prompts
  • Added select() helper for selection prompts

Full Changelog

v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 11:10
7d5d788

What's Changed

Bug Fixes

  • Fixed version mismatch - hetzner --version now displays correct version (#62)

Code Quality Improvements

  • Refactored action polling to use built-in hetzner.actions.poll() consistently (#64)
  • Removed unused _hetzner parameter from promptForServerOptions (#66)
  • Removed dead code: dim(), bold(), cyan() no-op functions (#68)
  • Extracted resolveIdOrName utility to reduce ID resolution boilerplate (#71)

Documentation

  • Documented the hetzner setup command in README (#74)

Stats

  • ~225 lines of code removed (net reduction)
  • 4 new tests added for resolveIdOrName utility
  • All 142 tests passing

Installation

npm install -g @tomkp/hetzner-cli@0.5.0

Full Changelog: v0.4.0...v0.5.0

v0.4.0 - Enhanced UX/UI

Choose a tag to compare

@tomkp tomkp released this 12 Jan 10:19
112ced7

What's New

This release brings a major UX/UI overhaul with professional-grade terminal interface components.

New Components

  • Confirm - Confirmation prompts for all destructive operations (delete server, volume, etc.)
  • SelectInput - Interactive dropdown select for create commands
  • Progress - Progress bars for long-running operations with real-time percentage
  • Panel - Bordered container component with optional title
  • HelpBar - Keyboard shortcuts display component

Enhanced Components

  • Table - New optional bordered mode with box-drawing characters
  • DetailView - Bordered sections for better visual hierarchy
  • SetupWizard - Complete rewrite using Ink components with PasswordInput for secure token entry

Improvements

  • Added @inkjs/ui component library for professional UI primitives
  • Enhanced color scheme with hex colors for precise terminal styling
  • Box-drawing characters throughout for consistent visual structure
  • Progress indicators during server creation, power operations, and reboots
  • Safety confirmations before all destructive operations

Changes

  • #42 Add @inkjs/ui component library
  • #44 Add confirmation prompts for destructive operations
  • #46 Replace setup wizard with Ink components
  • #48 Add interactive select infrastructure for create commands
  • #50 Add bordered table support with box-drawing characters
  • #52 Add progress bars for async operations
  • #54 Enhance color scheme with hex colors
  • #56 Add reusable Panel component with box borders
  • #58 Enhance DetailView with bordered sections
  • #60 Add HelpBar component for keyboard shortcuts display

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 08:23
d6208ab

What's New

Interactive Setup Wizard

  • New hetzner setup command for guided API token configuration
  • Validates tokens before saving
  • Provides direct links to Hetzner console

Improved First-Run Experience

  • Helpful error messages when token is missing
  • Clear instructions pointing to hetzner setup
  • Step-by-step guidance for manual configuration

Config Location

  • Config now stored at ~/.config/hetzner/config.json
  • Follows XDG Base Directory standard
  • Cleaner, more predictable location

Full Changelog

v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@tomkp tomkp released this 12 Jan 08:03
decbe16

What's New

Migrated the CLI to use Ink (React for CLIs) for a more modern, professional UI.

Changes

  • Replace chalk, cli-table3, ora with Ink
  • Add new UI component library (Table, Spinner, StatusBadge, Message, DetailView)
  • Add status indicators with colored dots (● running, ○ stopped)
  • Add clean table separators (─) and item counts
  • Add animated spinners during loading

Backwards Compatibility

  • --json flag still works (bypasses Ink)
  • Non-TTY mode falls back to simple text output
  • All existing CLI flags unchanged

Full Changelog: v0.1.0...v0.2.0