Local projects from git
Point at a git@… or https://… URL with an optional subpath; Terrain clones into its own data dir — no ~/code access required. Multiple subpaths share one clone.
A native GNOME GUI for Terraform and OpenTofu.
Workspaces, streamed runs, plan diffs, state viewer, variable management — git-cloned local projects (with terraform workspace support) alongside remote backends (HCP, Terraform Enterprise, OTF) under one roof.
Point at a git@… or https://… URL with an optional subpath; Terrain clones into its own data dir — no ~/code access required. Multiple subpaths share one clone.
Discovered via tofu workspace list and surfaced as nested rows under each project. Create or delete from the sidebar; runs are pinned via TF_WORKSPACE.
tofu plan / apply / destroy with live coloured logs and a working cancel button. Remote runs fetched via API polling.
TFE-style per-resource changes with action badges (+ / ~ / − / −/+) and attribute-level before/after.
Resource tree with attributes, history of past state versions, side-by-side diff between any two versions.
Read and edit; sensitive values masked and persisted to the system keyring (libsecret), never plaintext on disk. Variable sets too.
Default for new workspaces. Terrain downloads + caches official OpenTofu / Terraform releases per workspace, verified against upstream _SHA256SUMS — no host install required.
Generate or import ed25519 SSH keys from Preferences; HTTPS tokens stored in libsecret. Both stay inside the sandbox — no ~/.ssh or ssh-agent socket needed.
Local CLI runner alongside HCP Terraform, self-hosted Terraform Enterprise, and OTF — same UI, no branching on backend kind.
Works on any modern Linux desktop. Carries its own runtime.
flatpak install --user --bundle \
./terrain-x86_64.flatpak
For glibc distros (Fedora 41+, Debian Trixie+, Ubuntu 24.10+, Arch) or musl (Alpine, Void). Needs GTK 4 + libadwaita 1.6+ on the host.
tar xzf terrain-linux-amd64-glibc.tar.gz
./terrain
Go 1.26+, GTK 4.10+, libadwaita 1.6+, blueprint-compiler, meson.
meson setup build
meson compile -C build
./build/terrain
Workspace management, runs, plan diff, state, variable management, variable sets, and remote backends (HCP / TFE / OTF) all work. Flathub submission is queued.
The current app icon is a placeholder. Terrain wants a proper GNOME-style app icon; the plan is to apply to GNOME Circle. If you have design chops and want to help — icon, mockups, anything visual — PRs and suggestions are very welcome.