{"id":37178218,"url":"https://github.com/grammeaway/lazyhetzner","last_synced_at":"2026-04-11T08:04:28.555Z","repository":{"id":310143913,"uuid":"998386591","full_name":"grammeaway/lazyhetzner","owner":"grammeaway","description":"A TUI for managing Hetzner Cloud resources","archived":false,"fork":false,"pushed_at":"2026-01-31T08:15:47.000Z","size":695,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-31T17:28:29.584Z","etag":null,"topics":["go","golang","hcloud","hetzner","hetzner-cloud","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grammeaway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-08T14:00:32.000Z","updated_at":"2026-01-31T08:14:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7fb38097-8a96-4ad7-a5a5-60445a97461b","html_url":"https://github.com/grammeaway/lazyhetzner","commit_stats":null,"previous_names":["grammeaway/lazyhetzner"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/grammeaway/lazyhetzner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grammeaway%2Flazyhetzner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grammeaway%2Flazyhetzner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grammeaway%2Flazyhetzner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grammeaway%2Flazyhetzner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grammeaway","download_url":"https://codeload.github.com/grammeaway/lazyhetzner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grammeaway%2Flazyhetzner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30322654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","hcloud","hetzner","hetzner-cloud","tui"],"created_at":"2026-01-14T20:46:20.948Z","updated_at":"2026-03-10T03:04:49.148Z","avatar_url":"https://github.com/grammeaway.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lazyhetzner\nA 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.\n\n![lazyhetzner demo GIF](./docs/lazyhetzner_demo.gif)\n\n\nBuilt using Golang, and the [Bubble Tea](https://github.com/charmbracelet/bubbletea) framework.\n\nFor 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.\n\nThe 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.\n\nTable of Contents:\n- [lazyhetzner](#lazyhetzner)\n  - [Features](#features)\n  - [Installation](#installation)\n    - [Installing with Go on your system](#installing-with-go-on-your-system)\n    - [Installing with pre-built binaries](#installing-with-pre-built-binaries)\n    - [Installing the nightly build (through Go)](#installing-the-nightly-build-through-go)\n  - [Verifying the installation](#verifying-the-installation)\n  - [Persisting and Managing Multiple Projects](#persisting-and-managing-multiple-projects)\n  - [Known Issues](#known-issues)\n  - [Roadmap](#roadmap)\n  - [Contributing](#contributing)\n\n## Features\nNotable features include:\n- **View resource labels**: View labels for various Hetzner resources.\n- **SSH into servers**: SSH into your Hetzner Cloud servers directly from the TUI, either in a new terminal window or in the current terminal.\n- **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.\n- **Copy IP addresses**: Easily copy IP addresses of your Hetzner Cloud servers to the clipboard.\n\n## Installation\n### Installing with Go on your system\nClone the repository and run the following commands to install the dependencies and build the binary:\n\n```bash\ngo install github.com/grammeaway/lazyhetzner@latest\n```\nThis 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.\n\n### Installing with pre-built binaries\nDownload the latest release matching your OS from the [releases page](https://github.com/grammeaway/lazyhetzner/releases).\n\nUnzip 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.\n\n### Installing the nightly build (through Go)\nIf you want to try the latest features and bug fixes, you can install the nightly build by running the following command:\n\n```bash\ngo install github.com/grammeaway/lazyhetzner@main\n```\n\n## Verifying the installation\nAfter installing, you can verify that `lazyhetzner` is installed correctly by running the following command in your terminal:\n\n```bash\nlazyhetzner version\n```\n\n\n## Persisting and Managing Multiple Projects\nYou 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).\n\nIf you prefer editing manually, create a ```config.json``` in the ```~/.config/lazyhetzner/``` directory with the following structure:\n\n```jsonc\n{\n  \"projects\": [\n    {\n      \"name\": \"production\",\n      \"token\": \"your-production-token\"\n    },\n    {\n      \"name\": \"staging\", \n      \"token\": \"your-staging-token\"\n    }\n  ],\n  \"default_project\": \"production\",\n  \"default_terminal\": \"\" // Optional: specify a default terminal emulator, e.g., \"foot\", \"alacritty\", \"kitty\"\n}\n```\n\n## Known Issues\nThe TUI is decently slow, and performance improvements are definitely on the roadmap.\n\nSome 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.\n\n## Roadmap\n- [ ] Add visualizations for the sub-resources:\n    - [ ] Server backups\n    - [ ] Server snapshots\n    - [ ] Server placement groups\n    - [ ] Server primary IPs\n\n## Contributing\nIf you would like to contribute to this project, please fork the repository and submit a pull request. Contributions are welcome!\n\n## AI Usage Disclosure\nThis project was built using ChatGPT Codex, and Claude, to speed up feature-releases after establishing the initial codebase structure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrammeaway%2Flazyhetzner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrammeaway%2Flazyhetzner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrammeaway%2Flazyhetzner/lists"}