MCPcopy Index your code
hub / github.com/andrewkroh/gvm

github.com/andrewkroh/gvm @v0.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.0 ↗ · + Follow
108 symbols 320 edges 19 files 12 documented · 11% updated 16d agov0.6.0 · 2025-10-17★ 2443 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

gvm

gvm is a Go version manager. gvm installs a Go version and prints the commands to configure your environment to use it. gvm can install Go binary versions from https://go.dev/dl or build it from source. Below are examples for common shells.

bash:

eval "$(gvm 1.25.3)"

cmd.exe (for batch scripts %i should be substituted with %%i):

FOR /f "tokens=*" %i IN ('"gvm.exe" 1.25.3') DO %i

powershell:

gvm --format=powershell 1.25.3 | Invoke-Expression

gvm flags can be set via environment variables by setting GVM_<flag>. For example --http-timeout can be set via GVM_HTTP_TIMEOUT=10m.

Installation

You can download a binary release of gvm for your specific platform from the releases page. Then just put the binary in your PATH and mark it as executable (chmod +x gvm).

You must adjust the version and platform info in URLs accordingly.

Linux (amd64):

# Linux Example (assumes ~/bin is in PATH).
curl -sL -o ~/bin/gvm https://github.com/andrewkroh/gvm/releases/download/v0.6.0/gvm-linux-amd64
chmod +x ~/bin/gvm
eval "$(gvm 1.25.3)"
go version

Linux (arm64):

# Linux Example (assumes ~/bin is in PATH).
curl -sL -o ~/bin/gvm https://github.com/andrewkroh/gvm/releases/download/v0.6.0/gvm-linux-arm64
chmod +x ~/bin/gvm
eval "$(gvm 1.25.3)"
go version

macOS (universal):

# macOS Example
curl -sL -o /usr/local/bin/gvm https://github.com/andrewkroh/gvm/releases/download/v0.6.0/gvm-darwin-all
chmod +x /usr/local/bin/gvm
eval "$(gvm 1.25.3)"
go version

Windows (PowerShell):

[Net.ServicePointManager]::SecurityProtocol = "tls12"
Invoke-WebRequest -URI https://github.com/andrewkroh/gvm/releases/download/v0.6.0/gvm-windows-amd64.exe -Outfile C:\Windows\System32\gvm.exe
gvm --format=powershell 1.25.3 | Invoke-Expression
go version

Fish Shell:

Use gvm with fish shell by executing gvm 1.25.3 | source in lieu of using eval.

For existing Go users:

go install github.com/andrewkroh/gvm/cmd/gvm@v0.6.0

Extension points exported contracts — how you extend this code

EnvFormatter (Interface)
(no doc) [4 implementers]
cmd/gvm/internal/shellfmt/format.go

Core symbols most depended-on inside this repo

ParseVersion
called by 9
version.go
VersionGoROOT
called by 8
gvm.go
makeCommand
called by 7
cmd.go
LessThan
called by 7
version.go
WithLogger
called by 6
cmd.go
Exec
called by 6
cmd.go
srcCacheDir
called by 6
srcrepo.go
existsDir
called by 6
util.go

Shape

Method 51
Function 42
Struct 13
FuncType 1
Interface 1

Languages

Go100%

Modules by API surface

cmd/gvm/internal/shellfmt/format.go23 symbols
srcrepo.go16 symbols
gvm.go15 symbols
version.go10 symbols
cmd.go8 symbols
util.go5 symbols
common/extract.go5 symbols
api.go5 symbols
common/common.go4 symbols
cmd/gvm/use.go3 symbols
cmd/gvm/gvm.go3 symbols
cmd/gvm/use_test.go2 symbols

For agents

$ claude mcp add gvm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page