Last modified May 14, 2020

gsctl Reference

gsctl is the command line utility to manage your Giant Swarm clusters.


Follow the links below for a detailed documentation, where available. You can also always use gsctl <command> --help.

Command Description
completion Create completion scripts for Bash and Zsh
create cluster Create a new cluster
create keypair Create and download new key pair
create kubeconfig Create/download new key pair and update kubectl configuration
create nodepool Create a new node pool
delete cluster Delete a cluster
delete nodepool Delete a node pool
delete endpoint Delete endpoint
info Print information on status, configuration, and the installation
list endpoints List endpoints
list clusters List clusters
list organizations List organizations
list keypairs List key pairs
list nodepools List node pools
list releases List releases
login Sign in as a user
logout Sign out
ping Check API connection
scale cluster Add or remove worker nodes of a cluster
select endpoint Select an endpoint
show cluster Show cluster details
show nodepool Show node pool details
show release Show details on a release
update cluster Modify cluster details (name, labels)
update nodepool Modify (rename, scale) a node pool
update organization set-credentials Set provider credentials for an organization
upgrade cluster Upgrade a cluster

For finding out which version of gsctl you currently have installed, and other useful information about the build, use the gsctl --version command.

Installing and updating

gsctl comes as a self-contained binary for Mac, Linux, and Windows. Below you find installation instructions for different platforms. If you want to build gsctl from source, find everything you need in its GitHub repository.

The current gsctl version is 0.24.2. Find details in the release notes.

Homebrew provides the most convenient way to install gsctl and keep it up to date. To install, use this command:

brew tap giantswarm/giantswarm
brew install gsctl

For updating:

brew upgrade gsctl

To install without homebrew, download the latest release from GitHub, unpack the binary and move it to a location covered by your `PATH` environment variable.

Arch Linux

gsctl can be installed using an AUR helper, such as yay or pacaur:

yay -S gsctl-bin

Other Distributions

Download the latest release from GitHub, unpack the binary and move it to a location covered by your `PATH` environment variable.

scoop enables convenient installs and updates for Windows PowerShell users. Before you can install gsctl for the first time, execute this:

scoop bucket add giantswarm

To install:

scoop install gsctl

To update:

scoop update gsctl

To install without scoop, download the latest release from GitHub, unpack the binary and move it to a location covered by your `PATH` environment variable.


gsctl keeps its own settings under $HOME/.config/gsctl/. There is a configuration file called config.yaml. Key pairs are stored in the certs subdirectory.

The following environment variables can be used to affect some behavior:

  • GSCTL_ENDPOINT: This can be used to specify an API endpoint URL.
  • GSCTL_AUTH_TOKEN: This can be used to specify an authentication token.
  • GSCTL_CAFILE: If your Giant Swarm API endpoint uses a certificate signed by an authority not known to your operating system, this variable can be set to the path of a custom CA (certification authority) bundle. A CA bundle is a text file containing one or more CA certificates in PEM format.
  • GSCTL_CAPATH: Similar to GSCTL_CAFILE, but GSCTL_CAPATH is expected to point to a directory containing one or more PEM files.
  • GSCTL_DISABLE_COLORS: When this variable is set to any non-empty string, all terminal output will be monochrome.
  • GSCTL_DISABLE_CMDLINE_TRACKING: When this variable is set to any non-empty string, command lines won’t be submitted to the API. Otherwise, command lines are submitted to learn about the tool’s usage and find ways to improve.
  • HTTP_PROXY, HTTPS_PROXY and NO_PROXY can be used to define proxy server usage as detailed in the Go net/http ProxyFromEnvironment docs.

In addition, global command-line options are available.

Known bugs and limitations

Check our issues with label kind/bug.


You’ll find info on changes in the release description.


We welcome your feedback on gsctl. If you feel like sharing openly, use the GitHub repository and create an issue, so other users can participate. Otherwise, please use the common Giant Swarm support channels.