https://github.com/grammeaway/lazyhetzner
A TUI for managing Hetzner Cloud resources
https://github.com/grammeaway/lazyhetzner
go golang hcloud hetzner hetzner-cloud tui
Last synced: 2 months ago
JSON representation
A TUI for managing Hetzner Cloud resources
- Host: GitHub
- URL: https://github.com/grammeaway/lazyhetzner
- Owner: grammeaway
- License: gpl-3.0
- Created: 2025-06-08T14:00:32.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-31T08:15:47.000Z (5 months ago)
- Last Synced: 2026-01-31T17:28:29.584Z (5 months ago)
- Topics: go, golang, hcloud, hetzner, hetzner-cloud, tui
- Language: Go
- Homepage:
- Size: 679 KB
- Stars: 16
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lazyhetzner
A TUI for managing Hetzner Cloud servers with ease. Written in Golang, using Bubble Tea for the terminal user interface, and the hcloud Go client for interacting with the Hetzner Cloud API.

Built using Golang, and the [Bubble Tea](https://github.com/charmbracelet/bubbletea) framework.
For the foreseeable future, this TUI is primarily meant for interacting with existing resources within Hetzner Cloud, rather than creating or deleting them. Creation and deletion of resources might be added in the future, but until then, consider using IaC tools like [Terraform](https://www.terraform.io/) for resource management.
The tool is heavily inspired by lovely TUI projects like [lazydocker](https://github.com/jesseduffield/lazydocker) and [lazysql](https://github.com/jorgerojas26/lazysql), both tools that I use on an almost daily basis. I hope this Hetzner TUI will be a worthy entry into the "lazy" family.
Table of Contents:
- [lazyhetzner](#lazyhetzner)
- [Features](#features)
- [Installation](#installation)
- [Installing with Go on your system](#installing-with-go-on-your-system)
- [Installing with pre-built binaries](#installing-with-pre-built-binaries)
- [Installing the nightly build (through Go)](#installing-the-nightly-build-through-go)
- [Verifying the installation](#verifying-the-installation)
- [Persisting and Managing Multiple Projects](#persisting-and-managing-multiple-projects)
- [Known Issues](#known-issues)
- [Roadmap](#roadmap)
- [Contributing](#contributing)
## Features
Notable features include:
- **View resource labels**: View labels for various Hetzner resources.
- **SSH into servers**: SSH into your Hetzner Cloud servers directly from the TUI, either in a new terminal window or in the current terminal.
- **SSH into servers in tmux or Zellij**: The TUI supports lunching SSH sessions in your current tmux or Zellij session, allowing you to manage your servers without leaving your current workflow.
- **Copy IP addresses**: Easily copy IP addresses of your Hetzner Cloud servers to the clipboard.
## Installation
### Installing with Go on your system
Clone the repository and run the following commands to install the dependencies and build the binary:
```bash
go install github.com/grammeaway/lazyhetzner@latest
```
This will install the `lazyhetzner` binary in your `$GOPATH/bin` directory. Make sure to add this directory to your `PATH` environment variable if it's not already included.
### Installing with pre-built binaries
Download the latest release matching your OS from the [releases page](https://github.com/grammeaway/lazyhetzner/releases).
Unzip the downloaded file and move the `lazyhetzner` binary to a directory in your `PATH`, such as `/usr/local/bin` on Linux or macOS, or `C:\Program Files\` on Windows.
### Installing the nightly build (through Go)
If you want to try the latest features and bug fixes, you can install the nightly build by running the following command:
```bash
go install github.com/grammeaway/lazyhetzner@main
```
## Verifying the installation
After installing, you can verify that `lazyhetzner` is installed correctly by running the following command in your terminal:
```bash
lazyhetzner version
```
## Persisting and Managing Multiple Projects
You can persist and manage multiple projects directly in the TUI (`a` to add, `d` to delete, `p` to set default project, `t` to set default terminal).
If you prefer editing manually, create a ```config.json``` in the ```~/.config/lazyhetzner/``` directory with the following structure:
```jsonc
{
"projects": [
{
"name": "production",
"token": "your-production-token"
},
{
"name": "staging",
"token": "your-staging-token"
}
],
"default_project": "production",
"default_terminal": "" // Optional: specify a default terminal emulator, e.g., "foot", "alacritty", "kitty"
}
```
## Known Issues
The TUI is decently slow, and performance improvements are definitely on the roadmap.
Some menu items are pretty ugly (design isn't my strong suit) - these things bother me in my day-to-day use, so I will make sure to improve them in the future.
## Roadmap
- [ ] Add visualizations for the sub-resources:
- [ ] Server backups
- [ ] Server snapshots
- [ ] Server placement groups
- [ ] Server primary IPs
## Contributing
If you would like to contribute to this project, please fork the repository and submit a pull request. Contributions are welcome!
## AI Usage Disclosure
This project was built using ChatGPT Codex, and Claude, to speed up feature-releases after establishing the initial codebase structure.