"/>
GitHub CLI extensions are repositories that provide additional gh commands.
The name of the extension repository must start with %[1]sgh-%[1]s and it must contain an
executable of the same name. All arguments passed to the %[1]sgh %[1]s invocation
will be forwarded to the %[1]sgh-%[1]s executable of the extension.
An extension cannot override any of the core gh commands. If an extension name conflicts
with a core gh command, you can use %[1]sgh extension exec %[1]s.
When an extension is executed, gh will check for new versions once every 24 hours and display
an upgrade notice. See %[1]sgh help environment%[1]s for information on disabling extension notices.
For the list of available extensions, see .
# Create a task from an inline description
$ gh agent-task create "build me a new app"
# Create a task from an inline description and follow logs
$ gh agent-task create "build me a new app" --follow
# Create a task from a file
$ gh agent-task create -F task-desc.md
# Create a task with problem statement from stdin
$ echo "build me a new app" | gh agent-task create -F -
# Create a task with an editor
$ gh agent-task create
# Create a task with an editor and a file as a template
$ gh agent-task create -F task-desc.md
# Select a different base branch for the PR
$ gh agent-task create "fix errors" --base branch
# Create a task using the custom agent defined in '.github/agents/my-agent.md'
$ gh agent-task create "build me a new app" --custom-agent my-agent
Create a new autolink reference for a repository.
The %[1]skeyPrefix%[1]s argument specifies the prefix that will generate a link when it is appended by certain characters.
The %[1]surlTemplate%[1]s argument specifies the target URL that will be generated when the keyPrefix is found, which
must contain %[1]s%[1]s variable for the reference number.
By default, autolinks are alphanumeric with %[1]s--numeric%[1]s flag used to create a numeric autolink.
The %[1]s%[1]s variable behavior differs depending on whether the autolink is alphanumeric or numeric:
- alphanumeric: matches %[1]sA-Z%[1]s (case insensitive), %[1]s0-9%[1]s, and %[1]s-%[1]s
- numeric: matches %[1]s0-9%[1]s
If the template contains multiple instances of %[1]s%[1]s, only the first will be replaced.
#!/usr/bin/env bash
set -e
echo "Hello %[1]s!"
# Snippets to help get started:
# Determine if an executable is in the PATH
# if ! type -p ruby >/dev/null; then
# echo "Ruby not found on the system" >&2
# exit 1
# fi
# Pass arguments through to another command
# gh issue list "$@" -R cli/cli
# Using the gh api command to retrieve and format information
# QUERY='
# query($endCursor: String) {
# viewer {
# repositories(first: 100, after: $endCursor) {
# nodes {
# nameWithOwner
# stargazerCount
# }
# }
# }
# }
# '
# TEMPLATE='
# {{- range $repo := .data.viewer.repositories.nodes -}}
# {{- printf "name: %%s - stargazers: %%v\n" $repo.nameWithOwner $repo.stargazerCount -}}
# {{- end -}}
# '
# exec gh api graphql -f query="${QUERY}" --paginate --template="${TEMPLATE}"
[::b]Application[-:-:-]
?: toggle help
q: quit
[::b]Navigation[-:-:-]
↓, j: scroll list of extensions down by 1
↑, k: scroll list of extensions up by 1
shift+j, space: scroll list of extensions down by 25
shift+k, ctrl+space (mac), shift+space (windows): scroll list of extensions up by 25
[::b]Extension Management[-:-:-]
i: install highlighted extension
r: remove highlighted extension
w: open highlighted extension in web browser
[::b]Filtering[-:-:-]
/: focus filter
enter: finish filtering and go back to list
escape: clear filter and reset list
[::b]Readmes[-:-:-]
enter: open highlighted extension's readme full screen
page down: scroll readme pane down
page up: scroll readme pane up
(On a mac, page down and page up are fn+down arrow and fn+up arrow)