---
name: "gt-extension-install"
section: "1"
platform: "linux"
package: "gitea-cli"
version: "1.0.0-1"
release: "Arch Linux 2026-11-07"
platforms: ["linux"]
url: "https://carta.tech/man/gt-extension-install"
---

# gt-extension-install(1)

Install an extension

## NAME

gt-extension-install - Install an extension

## SYNOPSIS

**gt extension install \<repository\> \[flags\]**

## DESCRIPTION

Install an extension from a repository named gt-NAME or gh-NAME, which then runs as gt NAME.

The repository is OWNER/REPO, HOST/OWNER/REPO or a URL on a Gitea instance, or https://github.com/OWNER/gh-NAME for a GitHub CLI extension, which gt reads without any credentials. "." installs the gt-NAME executable of the current directory, which runs in place while you develop it.

gt installs the release asset NAME-OS-ARCH or REPO-OS-ARCH (with .exe on Windows), else one whose name ends in OS-ARCH, of the latest release or of the release that --pin names. Without such an asset, it clones the repository at the release, the --pin commit or the default branch, which must hold an executable gt-NAME at its root.

gt checks a downloaded asset against the SHA-256 GitHub recorded for it, else against the checksums.txt asset of the release. When the release publishes neither, gt asks with a default of no, or installs with --yes. It records the SHA-256 and refuses to run the extension once the executable changes.

Extensions run with your privileges, but without your Gitea token: gt passes it, as GITEA\_TOKEN, only to extensions you allow to use it, by answering yes when gt asks or with --allow-credentials. See gt help extensions.

## OPTIONS

**--allow-credentials**\[=false\]\
 	Give the extension your Gitea token

**--compat-gh**\[=false\]\
 	Let the extension call gh, which gt answers for gh api, gh repo view with gt's JSON fields and gh auth token

**--force**\[=false\]\
 	Reinstall an extension that is already installed

**-h**, **--help**\[=false\]\
 	help for install

**--pin**=""\
 	Install the release **tag** or the commit and never upgrade it

## OPTIONS INHERITED FROM PARENT COMMANDS

**--cwd**=""\
 	Working **directory** for repository discovery

**--debug**\[=false\]\
 	Log the method, URL, status, and duration of each HTTP request to stderr

**--host**=""\
 	Gitea instance **URL**, including any base path

**--interactive**\[=false\]\
 	Allow prompts with machine output

**--no-input**\[=false\]\
 	Disable prompts and implicit editor/browser interactions

**--sudo**=""\
 	Perform API requests as this **user** (requires an administrator account)

**--user**=""\
 	Account **name** on the selected instance

**-y**, **--yes**\[=false\]\
 	Accept confirmations without prompting

## EXAMPLE

```
$ gt extension install alice/gt-hello
$ gt extension install https://gitea.com/alice/gt-hello --pin v1.2.0
# A GitHub CLI extension
$ gt extension install https://github.com/owner/gh-hello
# The extension in the current directory
$ gt extension install .
```

## SEE ALSO

**[gt-extension(1)](/man/gt-extension/1.md)**
