Files
docs/cli-docs/installation.md
T
2026-10-22 11:28:15 +02:00

3.8 KiB

sidebar_position
sidebar_position
2

Installation

gt is a single binary, built for Linux, macOS, Windows, and FreeBSD.

Install script

The install script downloads the binary for your system from dl.gitea.com, verifies its SHA-256 checksum and installs it as gt.

On Linux, macOS or FreeBSD:

curl -fsSL https://gitea.com/gitea/cli/raw/branch/main/scripts/install.sh | sh

It installs into /usr/local/bin when that directory is writable, else into ~/.local/bin.

On Windows, in PowerShell:

irm https://gitea.com/gitea/cli/raw/branch/main/scripts/install.ps1 | iex

It installs gt.exe into %LOCALAPPDATA%\Programs\gitea-cli and adds that directory to your PATH.

Both scripts read these environment variables:

Variable Description
GITEA_CLI_VERSION Version to install, such as 1.0.0, or nightly for the latest build of the main branch. Default: the latest release.
GITEA_CLI_INSTALL_DIR Directory to install gt into.

install.sh also accepts --nightly and --version VERSION:

curl -fsSL https://gitea.com/gitea/cli/raw/branch/main/scripts/install.sh | sh -s -- --nightly

Binaries

Download releases from dl.gitea.com/gitea-cli. Builds of the main branch are in its main directory. Each binary is available as is and compressed with xz, and has a matching .sha256 checksum file:

VERSION=main
curl -sSLO "https://dl.gitea.com/gitea-cli/$VERSION/gitea-cli-$VERSION-linux-amd64"
curl -sSLO "https://dl.gitea.com/gitea-cli/$VERSION/gitea-cli-$VERSION-linux-amd64.sha256"
sha256sum -c "gitea-cli-$VERSION-linux-amd64.sha256"
sudo install -m 0755 "gitea-cli-$VERSION-linux-amd64" /usr/local/bin/gt

Each version also has a gitea-cli-<version>-docs.tar.xz archive with the command reference, the man pages and the shell completion scripts.

Docker

The gitea/gitea-cli image runs gt as its entry point. Releases are tagged with their version and latest, builds of the main branch with nightly.

docker run --rm -e GITEA_TOKEN -e GITEA_CLI_HOST=https://gitea.example.com \
  gitea/gitea-cli issue list --repo owner/repo

A container has no system keyring, so pass a token in the environment as above (see Using gt in CI). To keep the settings and a login between runs, mount a volume at /app, the home directory of the image, and log in with --credential-store file.

Go

With Go 1.27 or later:

go install gitea.dev/cli/cmd/gt@latest

To build gt from a clone of gitea/cli, run make; it needs GNU Make.

Shell completion

gt completion <shell> prints the completion script for bash, zsh, fish or PowerShell. Completion includes your aliases and, after --json, the JSON fields of a command. Add the line for your shell to its startup file:

# ~/.bashrc (on macOS, ~/.bash_profile); needs the bash-completion package
eval "$(gt completion bash)"

# ~/.zshrc, after compinit
source <(gt completion zsh)

# fish, once
gt completion fish > ~/.config/fish/completions/gt.fish

In PowerShell, add this line to your profile:

gt completion powershell | Out-String | Invoke-Expression

gt completion <shell> --help shows the details for each shell.

Man pages

gt man prints gt's full manual, and gt man <command> the man page of one command, such as gt man pr create; gt man is not listed in gt --help. The man pages are also in the docs archive of each version.

# bash or zsh
man <(gt man)

# write it to a file
gt man --output-file gt.1

Upgrading

Run the install script again, download the new binary, or pull the new image. gt version prints the version you run.