# Install tfupdate with Homebrew, apk, MacPorts, Nix, zypper

Update version constraints in your Terraform configurations. Version 0.10.0 via Homebrew; verified 2026-07-03.

## Install

```sh
sudo av install brew:tfupdate
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install tfupdate
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install tfupdate
```

  Evidence: MacPorts ports tree: sysutils/tfupdate/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add tfupdate
```

  Evidence: Alpine Linux edge package indexes: tfupdate from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#tfupdate
```

  Evidence: nixpkgs package indexes: pkgs/by-name/tf/tfupdate/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install tfupdate
```

  Evidence: openSUSE Tumbleweed package metadata: tfupdate from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:tfupdate
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/tfupdate>
- **Version:** 0.10.0
- **Source summary:** Update version constraints in your Terraform configurations
- **Homepage:** <https://github.com/minamijoyo/tfupdate>
- **Repository:** <https://github.com/minamijoyo/tfupdate>
- **Upstream docs:** <https://github.com/minamijoyo/tfupdate#readme>
- **License:** MIT
- **Source archive:** <https://github.com/minamijoyo/tfupdate/archive/refs/tags/v0.10.0.tar.gz>
- **Last updated:** 2026-07-03T04:12:50Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- tfupdate (cli)
- tfupdate (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.10.0
- Package-manager updated: 2026-07-03
- Local data: ok
- Upstream repository: https://github.com/minamijoyo/tfupdate
- Upstream latest detected: v0.10.0 (current)
## Project history and usage

tfupdate is a CLI for updating version constraints in Terraform and OpenTofu configurations. Its README documents support for Terraform core, OpenTofu core, providers, modules, dependency lock files, recursive updates, and release lookups from GitHub, GitLab, the Terraform Registry, and the OpenTofu Registry.

### Project history

The README explains the design motivation: Terraform estates are often split across many directories, while best practice is to pin versions of core, providers, and modules. tfupdate was written to parse configuration and update version constraints across those scattered files.

The tool later grew beyond simple constraint editing. The README documents `release` subcommands for checking versions, `lock` support for updating `.terraform.lock.hcl` without the Terraform or OpenTofu CLI, and OpenTofu registry support through `TFREGISTRY_BASE_URL`.

### Adoption history

The README documents installation through Homebrew, MacPorts, compiled releases, Go install, and Docker. The input metadata also records apk, Homebrew, MacPorts, Nix, and zypper packaging.

The README explicitly suggests integrating tfupdate with CI or a scheduler to check releases daily and create pull requests automatically, and links a CircleCI example and orb.

### How it is used

Package users run subcommands such as `tfupdate terraform`, `tfupdate opentofu`, `tfupdate provider`, `tfupdate module`, `tfupdate release`, and `tfupdate lock`. The recursive flag lets teams update many directories in one pass, which is the core package-nerd use case.

For lock files, tfupdate can download provider packages, calculate hashes, and cache calculated values in memory, which the README calls out as a performance advantage when updating multiple directories recursively.

### Why package nerds care

tfupdate is a dependency-maintenance tool for infrastructure code. It fills the same niche as language package updaters, but for Terraform/OpenTofu version constraints, provider locks, and module versions.

Its support across several Unix package managers makes it useful in automated developer environments where Terraform version bumps are handled by scheduled jobs rather than manual edits.

### Timeline

- 2024-08-01: The GitHub releases page lists tfupdate v0.8.4.
- 2025-05-03: The GitHub releases page lists tfupdate v0.9.0.
- 2026-05-05: The GitHub releases page lists tfupdate v0.9.4.
- 2026: The input metadata records tfupdate packaging in apk, Homebrew, MacPorts, Nix, and zypper.

### Related projects

- tfupdate works with Terraform, OpenTofu, GitHub and GitLab releases, Terraform Registry modules and providers, OpenTofu Registry data, CircleCI automation, and `.terraform.lock.hcl`.

### Sources

- <https://github.com/minamijoyo/tfupdate README>
- <https://github.com/minamijoyo/tfupdate/releases>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** tfupdate
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - tfupdate: normalized package name match | nixpkgs package indexes: pkgs/by-name/tf/tfupdate/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - tfupdate - 0.8.2-r16: normalized package name match | Alpine Linux edge package indexes: tfupdate from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Update version constraints in your Terraform configurations | https://github.com/minamijoyo/tfupdate
- apk - tfupdate-doc - 0.8.2-r16: normalized package name match | Alpine Linux edge package indexes: tfupdate-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Update version constraints in your Terraform configurations (documentation) | https://github.com/minamijoyo/tfupdate
- zypper - tfupdate - 0.9.4-1.1: normalized package name match | openSUSE Tumbleweed package metadata: tfupdate from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Update version constraints in your Terraform configurations | https://github.com/minamijoyo/tfupdate
- MacPorts - tfupdate: normalized package name match | MacPorts ports tree: sysutils/tfupdate/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Cloud CLI packages](https://www.automicvault.com/pkg/cloud-clis/) - Belongs to a cloud or infrastructure command family.
- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [tfschema](https://www.automicvault.com/pkg/brew/tfschema/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, opentofu, terraform.
- [iam-policy-json-to-terraform](https://www.automicvault.com/pkg/brew/iam-policy-json-to-terraform/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, terraform.
- [terragrunt](https://www.automicvault.com/pkg/brew/terragrunt/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, opentofu, terraform.
- [terramate](https://www.automicvault.com/pkg/brew/terramate/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, opentofu, terraform.
- [tfsort](https://www.automicvault.com/pkg/brew/tfsort/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, terraform.
- [tfstate-lookup](https://www.automicvault.com/pkg/brew/tfstate-lookup/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, terraform.
- [tofu-ls](https://www.automicvault.com/pkg/brew/tofu-ls/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, opentofu, terraform.
- [k2tf](https://www.automicvault.com/pkg/brew/k2tf/) - Shares av.db curated category or tags: cli, developer-tools, infrastructure-as-code, terraform.
- [tfenv](https://www.automicvault.com/pkg/brew/tfenv/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, infrastructure.
- [terrahash](https://www.automicvault.com/pkg/brew/terrahash/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, infrastructure.

## Combined YAML source

View the package source record on GitHub. [combined/tfupdate.yml](https://github.com/automic-vault/db/blob/main/combined/tfupdate.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
