Skip to main content
The -s and -a flags are aliases for the same operation: they update the workspace symlinks and version file to point at a different installed Go version.

Syntax

igo -s <version>
igo -a <version>
version
string
required
The Go version to activate in X.Y.Z format (e.g. 1.23.4). The version must already be installed in your workspace.

Examples

# Switch to Go 1.23.4
igo -s 1.23.4

# Activate Go 1.24.0 (alias for -s)
igo -a 1.24.0

# Switch with verbose output
igo -s 1.23.4 -verbose

What it does

1

Check the workspace

igo verifies that the workspace directory (default: ~/go) exists. If no Go versions have been installed, the command exits.
2

Read the current active version

igo reads ~/go/version to determine which version is currently active.
3

Check if already on the requested version

If the requested version matches the currently active version, igo prints Already using version <version> and exits without making any changes.
4

Verify the target version is installed

igo checks that ~/go/versions/<version> exists. If the directory is not found, the command exits without making changes.
5

Replace symlinks

The existing bin, path, and root symlinks in the workspace are removed and recreated pointing at the new version’s directories:
SymlinkNew target
~/go/root~/go/versions/<version>/go
~/go/bin~/go/versions/<version>/go/bin
~/go/path~/go/versions/<version>
6

Update the version file

~/go/version is overwritten with the new version string.
The target version must already be installed. Run igo -i <version> first if you have not installed it yet. You can see all installed versions with igo -l.

Build docs developers (and LLMs) love