# Install goenv with Homebrew

Go version management. Version 3.1.4 via Homebrew; verified 2026-07-27.

## Install

```sh
sudo av install brew:goenv
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install goenv
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:goenv
- **Package manager:** Homebrew
- **Version:** 3.1.4
- **Source summary:** Go version management
- **Homepage:** <https://github.com/go-nv/goenv>
- **Repository:** <https://github.com/go-nv/goenv>
- **Last updated:** 2026-07-27T16:47:24+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- goenv (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 3.1.4
## Project history and usage

goenv is a Go version manager modeled after pyenv and rbenv. It uses shims, global and per-project version files, and a go-build plugin to let developers install and switch Go toolchains without replacing the system Go.

### Project history

The public repository was created in April 2016. The README says goenv aims to follow the successful version-management model of pyenv and rbenv, and that it was cloned from pyenv and modified for Go.

The project began as a shell-oriented version manager with pyenv-style commands and later introduced a v3 line described by the README as a complete rewrite from shell scripts to a Go-based CLI while preserving backward compatibility with v2.

### Adoption history

goenv's adoption follows the dotfile and language-version-manager path: developers install it into `~/.goenv`, initialize it in a shell, then use `.go-version` files to pin projects. Homebrew packages it as formula `goenv`, with `goenv@3` as an alias in formula metadata.

Repository metadata showed more than two thousand stars by June 2026. The batch package metadata lists Homebrew packaging, which is the main package-manager path in this input set.

### How it is used

Typical setup clones or installs goenv, adds `eval "$(goenv init -)"` to the shell, installs a Go version with `goenv install`, and selects it with `goenv global`, `goenv local`, or `GOENV_VERSION`.

The command reference documents pyenv-style subcommands such as `goenv versions`, `which`, `whence`, `rehash`, `prefix`, `version-origin`, and `version-file`. Local project selection writes `.go-version`, while legacy `.goenv-version` is still read for compatibility.

### Why package nerds care

Package nerds care about goenv because it is one of the cleanest examples of a language tool borrowing another ecosystem's version-manager design. The package identity is less about Go code and more about shims, version files, shell integration, plugin layout, and reproducible developer environments.

It also illustrates the maintenance tradeoff of packaging version managers: the tool has to track upstream Go releases, work across shells, preserve old version-file behavior, and avoid fighting system package managers.

### Timeline

- 2016-04: GitHub repository created.
- 2016-04: v20160417 tag published.
- 2022: v2 beta changelog entries added support for newer Go releases and `.go-version` behavior.
- 2026-04: 3.0.0 released as the Go-based CLI line.
- 2026-06: 3.1.4 released.

### Related projects

- pyenv and rbenv are the explicit design models named by goenv.
- go-build is the plugin used to install Go versions.
- gvm and crsmithdev/goenv are named in the README as alternative Go version-management approaches.

### Sources

- <https://api.github.com/repos/go-nv/goenv>
- <https://api.github.com/repos/go-nv/goenv/releases>
- <https://formulae.brew.sh/api/formula/goenv.json>
- <https://github.com/go-nv/goenv>
- <https://github.com/go-nv/goenv/blob/master/COMMANDS.md>
- <https://github.com/go-nv/goenv/blob/master/INSTALL.md>
- <https://github.com/go-nv/goenv/releases>


## Security Notes

narrow executable package without higher-risk signals.

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


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: $GOENV_ROOT/version, ~/.goenv/version, .go-version, .goenv-version

## Combined YAML source

View the package source record on GitHub. [combined/goenv.yml](https://github.com/mxcl/pkgdb/blob/main/combined/goenv.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- cross-ecosystem install command graph
