FreeBSD Manual Pages
GCLI(1) General Commands Manual GCLI(1) NAME gcli -- interact with git forges without using a web-browser SYNOPSIS gcli [overrides] subcommand [options] DESCRIPTION gcli can be used to interact with git(1) forges like GitHub, GitLab and Gitea from the command line in order to make many tasks like managing issues and pull requests easier. If you're looking for a guided tutorial either go to https://herrhotzenplotz.de/gcli/tutorial or read the offline version gcli-tutorial(1). Calls to gcli usually consist of either only the subcommand to list re- quested data or the subcommand plus further subcommands or options to perform various tasks. Some commands may also take an item to operate on and accept multiple actions that will be performed on the item (e.g. PRs may be summarised, comments fetched and a diff printed all in one command). The default behaviour of gcli can be overridden to accommodate more nu- anced use cases. Manual overrides must be passed before subcommands and their options. SUBCOMMANDS Most of these subcommands are documented in dedicated man pages. issues Issues in repositories. See gcli-issues(1). pulls Pull Requests on repositories. See gcli-pulls(1). labels Manage labels for issues and pull/merge requests on reposi- tories. See gcli-labels(1). forks Forking repositories. See gcli-forks(1). gists GitHub Gists are like paste bins to where you can dump code snippets etc. See gcli-gists(1). snippets Support for GitLab snippets. See gcli-snippets(1). repos Manage your own or other repositories. See gcli-repos(1). comment Submit comments under issues and PRs. See gcli-comment(1). status Print a list of TODOs and/or notifications. See gcli-status(1). pipelines Inspect and manage GitLab Pipelines. See gcli-pipelines(1). releases Create and manage releases. See gcli-releases(1). milestones List and manage milestones. See gcli-milestones(1). config Change user settings for the forge. Allows you to e.g. up- load or delete ssh keys. See gcli-config(1). api Perform direct queries to the API and dump the JSON re- sponse to stdout. This is primarily intended to assist de- bugging gcli. See gcli-api(1). version Print version and exit. OPTIONS gcli overrides are: -a, --account override-account Manually override the default account. override-account must name a config section for an account in the global config file. See "FILES". -r, --remote override-remote Use override-remote as the remote when trying to infer reposi- tory data. -c, --colours Ignore NO_COLOR as well as whether the output is not tty and print ANSI escape sequences for changing text formatting. De- fault is to output colours unless stdout is not a tty. See isatty(3). This is useful in combination with modern pagers such as less(1). --no-spinner Disable the animated spinner that is displayed when gcli is making network requests. This is useful inside dumb terminals or in editors such as acme. See also GCLI_NOSPINNER in "ENVIRONMENT". --no-markdown Disable automatic markdown rendering. This is useful in case improperly formatted markdown is causing unreadable output or if messages aren't markdown at all. See also GCLI_RENDER_MARKDOWN in "ENVIRONMENT". -q, --quiet Suppresses most output of gcli. -v, --verbose Be very verbose. This means that warnings about missing config files and request steps are printed to stderr. -t, --type forge-type Forcefully override the forge type. Set forge-type to `github', `gitlab' `gitea', or `bugzilla' to connect to the corresponding services. Common options across almost all of the subcommands are: -s, --sorted Reverse the output such that most recent items appear at the bottom. -n, --count n Fetch multiple items of data. The default is usually 30 items, but this parameter allows to fetch more than that. Setting n to -1 will result in all pages being queried and all items being read. However, be careful with that, since if there is a lot of data to be fetched, it may result in rate limiting by the GitHub API, aside from the fact that it may also take a consid- erable amount of time to process. -a, --all Fetch all data, including closed issues and closed/merged PRs. -y, --yes Do not ask for confirmation when performing destructive opera- tions or performing submissions. Always assume yes. -o, --owner owner Operate on the given owner (organisation or user). Can only be used in combination with -r. -r, --repo repo Operate on the given repository. Can only be used in combina- tion with -o. -i id Operate on the given numeric identifier. Other options specific to the context are documented in the respective man pages. ENVIRONMENT GIT_EDITOR, VISUAL, EDITOR If the gcli config file does not name an editor, gcli will search the named environment variables in this order and use the first that is set as the editor. XDG_CONFIG_HOME There should be a subdirectory called gcli in the di- rectory this environment variable points to where gcli will go looking for its configuration file. See "FILES". GCLI_ACCOUNT Specifies an account name that should be used instead of an inferred one. The value of GCLI_ACCOUNT can be overridden again by using -a account-name. This is helpful in cases where you have multiple accounts of the same forge-type configured and you don't want to use the default. NO_COLOR If set to `1', `y or' `yes' (capitalisation ignored) this will suppress output of ANSI colour escape se- quences. See "OPTIONS" (--colours). GCLI_NOSPINNER If set to `1', `y or' `yes' (capitalisation ignored) this will disable the animated spinner when gcli is making requests. See "OPTIONS" (--disable-spinner) GCLI_RENDER_MARKDOWN If this is set to `0', `n or' `no' (capitalisation ig- nored) this will disable markdown rendering in gcli's output. See "OPTIONS" (--no-markdown). FILES ${XDG_CONFIG_HOME}/gcli/config The user configuration file for gcli. It contains account definitions as well as sensible default values. See gcli(5). .gcli A repo-specific config file intended to be committed into the repo so that users don't have to manually specify all the options like --in, --from, --base -etc. when creating pull re- quests. See gcli(5) for details about this file. EXAMPLES List recently opened issues in the current upstream repository: $ gcli issues Merge upstream PR #22: $ gcli pulls -p 22 merge Get a summary and comments of upstream PR #22: $ gcli pulls -p 22 summary comments Establish a connection to GitHub and print the last 10 pull requests in contour-terminal/contour regardless of their state. $ gcli -t github pulls -o contour-terminal -r contour -a -n10 This can be useful if neither your config file nor the directory you're working from contain the relevant forge and repository information. SEE ALSO git(1), gcli-issues(1), gcli-pulls(1), gcli-labels(1), gcli-comment(1), gcli-review(1), gcli-forks(1), gcli-repos(1), gcli-gists(1), gcli-releases(1), gcli-comment(1) gcli-pipelines(1) gcli-config(1) HISTORY The idea for gcli appeared during a long rant on IRC where the issue with the official tool written by GitHub became clear to be the manual dialling and DNS resolving by the Go runtime, circumventing almost the entirety of the IP and DNS services of the operating system and leaking sensitive information when using Tor. Implementation started in October 2021 with the goal of having a de- cent, sufficiently portable and secure version of a cli utility to in- teract with the GitHub world without using the inconvenient web inter- face. Later, support for GitLab and Gitea (Codeberg) were added. AUTHORS Nico Sonack aka. herrhotzenplotz <nsonack@herrhotzenplotz.de> and con- tributors. CAVEATS Not all features that are available from the web version are available in gcli. However, it is a non-goal of the project to provide all this functionality. BUGS There is an undocumented ci subcommand available for GitHub CI ser- vices. The subcommand is undocumented as it is not well tested and likely subject to changes. Please report bugs via E-Mail to https://lists.sr.ht/~herrhotzenplotz/gcli-discuss. Alternatively you can report them on any of the forges linked at https://sr.ht/~herrhotzenplotz/gcli. However, the preferred and quick- est method is to use the mailing list. You may also report an issue like so: $ gcli -a some-gitlab-account \ issues create \ -o herrhotzenplotz -r gcli \ "BUG : ..." gcli 2.9.1 04-Oct-2025 GCLI(1)
NAME | SYNOPSIS | DESCRIPTION | SUBCOMMANDS | OPTIONS | ENVIRONMENT | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS | CAVEATS | BUGS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gcli&sektion=1&manpath=FreeBSD+Ports+15.0>
