u/ThisIsACoolNick

Image 1 — Built a native GNOME desktop GUI for Terraform / OpenTofu, inspired by TFE and OTF
Image 2 — Built a native GNOME desktop GUI for Terraform / OpenTofu, inspired by TFE and OTF
Image 3 — Built a native GNOME desktop GUI for Terraform / OpenTofu, inspired by TFE and OTF
Image 4 — Built a native GNOME desktop GUI for Terraform / OpenTofu, inspired by TFE and OTF
▲ 1 r/opentofu+1 crossposts

Built a native GNOME desktop GUI for Terraform / OpenTofu, inspired by TFE and OTF

Sharing a side project for linux desktop users: Terrain, an open-source desktop app for managing Terraform / OpenTofu workflows locally, with a UI shaped like Terraform Enterprise / HCP Terraform / OTF. Remote backends (HCP, self-hosted TFE, OTF) work too, via go-tfe, in the same sidebar.

The motivation was selfish: I wanted TFE-style ergonomics (workspaces, run history, structured plan diffs, variable management) for projects on my laptop, using a desktop native tool that isn't a browser tab. What works today:

  • Local projects added by Git URL. Terrain clones into its own data dir; multiple subpaths share one clone.
  • Tofu workspaces are first-class, runs pinned via TF_WORKSPACE, parsed from -json output.
  • Plan diff: TFE-style action badges with per-attribute before/after.
  • State viewer with version history and side-by-side diff between snapshots.
  • Variables and variable sets, sensitive values stored in libsecret only.
  • Managed binary mode: SHA256-verified upstream OpenTofu / Terraform releases per workspace, no host install needed.

Disclosure: most of the Go was written with help from Claude, all reviewed by me. Terrain does not generate or modify your Terraform; runs go through the upstream tofu / terraform binary unchanged.

Source: https://github.com/raspbeguy/terrain

Honest feedback welcome, especially from folks running serious state.

u/ThisIsACoolNick — 4 days ago