Releases: tomkp/hetzner-cli
Release list
v2.0.0 - CLI/TUI Separation
Breaking Changes
- CLI renamed: Binary changed from
hetznertohz - Non-interactive: All interactive prompts removed - specify options via flags
setupcommand removed: Usehz config set token <token>instead- Delete confirmations: Use
--yesflag 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 confirmationConfiguration
hz config set token YOUR_API_TOKEN
hz config set dnsToken YOUR_DNS_TOKENOr use environment variables: HETZNER_TOKEN, HETZNER_DNS_TOKEN
v1.2.0
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
v1.1.0
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
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 (
--jsonflag) - 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-cliQuick Start
# Interactive setup
hetzner setup
# Or set token manually
hetzner config set token YOUR_API_TOKEN
# List servers
hetzner servers listv0.6.0
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
What's Changed
Bug Fixes
- Fixed version mismatch -
hetzner --versionnow displays correct version (#62)
Code Quality Improvements
- Refactored action polling to use built-in
hetzner.actions.poll()consistently (#64) - Removed unused
_hetznerparameter frompromptForServerOptions(#66) - Removed dead code:
dim(),bold(),cyan()no-op functions (#68) - Extracted
resolveIdOrNameutility to reduce ID resolution boilerplate (#71)
Documentation
- Documented the
hetzner setupcommand in README (#74)
Stats
- ~225 lines of code removed (net reduction)
- 4 new tests added for
resolveIdOrNameutility - All 142 tests passing
Installation
npm install -g @tomkp/hetzner-cli@0.5.0Full Changelog: v0.4.0...v0.5.0
v0.4.0 - Enhanced UX/UI
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/uicomponent 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
What's New
Interactive Setup Wizard
- New
hetzner setupcommand 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
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
--jsonflag 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