{"meta":{"title":"Using GitHub CLI extensions","intro":"Learn how to use custom extensions written by other GitHub CLI users.","product":"GitHub CLI","breadcrumbs":[{"href":"/en/enterprise-cloud@latest/github-cli","title":"GitHub CLI"},{"href":"/en/enterprise-cloud@latest/github-cli/github-cli","title":"GitHub CLI"},{"href":"/en/enterprise-cloud@latest/github-cli/github-cli/using-github-cli-extensions","title":"Using GitHub CLI extensions"}],"documentType":"article"},"body":"# Using GitHub CLI extensions\n\nLearn how to use custom extensions written by other GitHub CLI users.\n\n## About GitHub CLI extensions\n\n> \\[!NOTE]\n> Extensions outside of GitHub and GitHub CLI are not certified by GitHub and are governed by separate terms of service, privacy policy, and support documentation. To mitigate risk when using third-party extensions, audit the source code of the extension before installing or updating the extension.\n\nGitHub CLI extensions are custom GitHub CLI commands that anyone can create and use. For more information about how to create GitHub CLI extensions, see [Creating GitHub CLI extensions](/en/enterprise-cloud@latest/github-cli/github-cli/creating-github-cli-extensions).\n\nExtensions are locally installed and are scoped to the user. Therefore, if you access GitHub CLI from a different machine or another user accesses GitHub CLI from the same machine, the extension will not be available.\n\n## Finding extensions\n\nYou can find extensions by browsing [repositories with the `gh-extension` topic](https://github.com/topics/gh-extension).\n\n## Installing extensions\n\nTo install an extension, use the `extensions install` subcommand. Replace the `repo` parameter with the repository of the extension. You can use the full URL, such as `https://github.com/octocat/gh-whoami`, or just the owner and repository, such as `octocat/gh-whoami`.\n\nIf the owner and repository are used, `gh` will install the extension using the hostname to which `gh` is currently authenticated. The full URL format is useful when installing extensions from a different host. For example, users on GitHub Enterprise Server should use the full repository URL to install extensions from GitHub.com or any other host.\n\nTo install an extension in development from the current directory, use `.` as the value for the `repo` parameter.\n\n```shell\ngh extension install REPO\n```\n\nIf you already have an extension by the same name installed, the command will fail. For example, if you have installed `octocat/gh-whoami`, you must uninstall it before installing `hubot/gh-whoami`.\n\n## Running an extension\n\nWhen you have installed an extension, you run the extension as you would run a native GitHub CLI command, using `gh EXTENSION-NAME`. The `EXTENSION-NAME` is the name of the repository that contains the extension, minus the `gh-` prefix.\n\nFor example, if you installed the extension from the `octocat/gh-whoami` repository, you would run the extension with the following command.\n\n```shell\ngh whoami\n```\n\nYou can usually find specific information about how to use an extension in the README of the repository that contains the extension.\n\n## Viewing installed extensions\n\nTo view all installed extensions, use the `extensions list` subcommand. The output will also tell you which extensions have updates available.\n\n```shell\ngh extension list\n```\n\n## Updating extensions\n\nTo update an extension, use the `extensions upgrade` subcommand. Replace the `extension` parameter with the name of the extension.\n\n```shell\ngh extension upgrade EXTENSION\n```\n\nTo update all installed extensions, use the `--all` flag.\n\n```shell\ngh extension upgrade --all\n```\n\n## Uninstalling extensions\n\nTo uninstall an extension, use the `extensions remove` subcommand. Replace the `extension` parameter with the name of the extension.\n\n```shell\ngh extension remove EXTENSION\n```"}