



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-jsonoutput. - 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.