Skip to main content

Installation

This page covers how to install the Gno toolchain: gnokey (key & transaction CLI), gno (language tooling), gnodev (local development node with hot reload), gnobro (package browser), and gnoweb (realm explorer).

For IDE / LSP support, see Editor setup.

One-line installer

Install precompiled gno, gnokey, gnodev, gnobro, and gnoweb (Linux/macOS, amd64/arm64) from GitHub Releases into ~/.gno/bin:

curl -fsSL https://raw.githubusercontent.com/gnolang/gno/master/misc/install.sh | sh

To pin a version:

curl -fsSL https://raw.githubusercontent.com/gnolang/gno/master/misc/install.sh | sh -s -- --version <tag>

To also install the validator node (gnoland), pass --full:

curl -fsSL https://raw.githubusercontent.com/gnolang/gno/master/misc/install.sh | sh -s -- --full

To uninstall:

curl -fsSL https://raw.githubusercontent.com/gnolang/gno/master/misc/uninstall.sh | sh

Scripts used by the one-line installer:

Environment variables

VariableEquivalent flagDescription
GNO_VERSION--versionRelease tag to install (default: latest)
GNO_INSTALL_DIR--dirInstallation directory (default: ~/.gno/bin)
GITHUB_TOKENAuthenticates GitHub API requests; raises the 60 requests/hour anonymous rate limit

Install from source

Building from source requires:

# Clone the repository
git clone https://github.com/gnolang/gno.git
cd gno

# Install all tools (gnokey, gno, gnodev)
make install

You can also install individual tools:

make install.gno      # Only gno
make install.gnokey # Only gnokey
make install.gnodev # Only gnodev

Make sure $GOPATH/bin is in your PATH if gno/gnokey/gnodev are not found after install — see Troubleshooting.

Docker

Official Docker images are published under ghcr.io/gnolang/gno (full list). Run individual tools without installing from source:

# Run gnokey
docker run -it ghcr.io/gnolang/gno/gnokey --help

# Run gnoland node
docker run -it ghcr.io/gnolang/gno/gnoland start

You can also build locally from the repository root:

docker build -t gno .

Verify installation

After installing, verify that the tools are available:

# List installed binaries
ls ~/.gno/bin

# Check binary versions
gno version
gnokey version
gnodev version

Troubleshooting

command not found — the install directory is not in your PATH. Add it:

# One-line installer (default)
export PATH="$PATH:$HOME/.gno/bin"

# Install from source (make install)
export PATH="$PATH:$(go env GOPATH)/bin"

Append the export line to your shell rc file (~/.bashrc, ~/.zshrc, …) to persist it. If you installed to a custom --dir, add that directory instead.

Stale binary on PATH — older install shadows the new one. Check with command -v gno; fix by reordering PATH or running hash -r.

Go version too oldmake install fails on missing language features. Requires Go 1.25+: check with go version, upgrade from go.dev/dl.

GitHub API rate limit during one-line install — anonymous requests are capped at 60/hour. Set GITHUB_TOKEN to authenticate:

GITHUB_TOKEN=<token> curl -fsSL https://raw.githubusercontent.com/gnolang/gno/master/misc/install.sh | sh

Next steps