Glab
The GitLab CLI tool. Archived: now officially adopted by GitLab as the official CLI tool and maintained at https://gitlab.com/gitlab-org/cli. See https://github.com/profclems/glab/issues/983
Install / Use
/learn @profclems/GlabREADME
ANNOUNCEMENT
FOLLOWING THE EARLIER ANNOUNCEMENT ABOUT ITS OFFICIAL ADOPTION BY AND TRANSITION TO GITLAB (SEE https://github.com/profclems/glab/issues/983), THIS PROJECT IS NO LONGER MAINTAINED IN THIS REPOSITORY . THE NEW HOME OF THIS PROJECT IS https://gitlab.com/gitlab-org/cli. ALL NEW CONTRIBUTIONS (INCLUDING FEATURE REQUESTS AND BUG REPORTS) SHOULD BE SENT TO THE OFFICIAL REPOSITORY ON GITLAB.
GLab

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching between windows and browser tabs. Work with issues, merge requests, watch running pipelines directly from your CLI among other features.
Inspired by [gh], the official GitHub CLI tool.
glab is available for repositories hosted on GitLab.com and self-hosted GitLab Instances. glab supports multiple authenticated GitLab instances and automatically detects the authenticated hostname from the remotes available in the working git directory.

Table of Contents
- Usage
- Demo
- Documentation
- Installation
- Authentication
- Configuration
- Environment Variables
- What about lab
- Issues
- Contributing
- License
Usage
glab <command> <subcommand> [flags]
Demo
Documentation
Read the documentation for usage instructions.
Installation
Download a binary suitable for your OS at the releases page.
Quick Install
Supported Platforms: Linux and macOS
Homebrew
brew install glab
Updating (Homebrew):
brew upgrade glab
Alternatively, you can install glab by shell script:
curl -sL https://j.mp/glab-cli | sudo sh
or
curl -s https://raw.githubusercontent.com/profclems/glab/trunk/scripts/install.sh | sudo sh
Installs into usr/bin
NOTE: Please take care when running scripts in this fashion. Consider peeking at the install script itself and verify that it works as intended.
Windows
Available for download via WinGet, scoop, or downloadable EXE installer file.
WinGet
winget install glab.glab
Updating (WinGet):
winget install glab.glab
Scoop
scoop install glab
Updating (Scoop):
scoop update glab
EXE Installer
EXE installers are available for download on the releases page.
Linux
Prebuilt binaries available at the releases page.
Linuxbrew (Homebrew)
brew install glab
Updating (Homebrew):
brew upgrade glab
Snapcraft
Make sure you have snap installed on your Linux Distro.
sudo snap install --edge glabsudo snap connect glab:ssh-keysto grant ssh access
Arch Linux
glab is available through the community/glab package or download and install an archive from the releases page. Arch Linux also supports snap.
pacman -S glab
KISS Linux
WARNING: It seems that KISS Linux may no longer be actively maintained, so links to its web domain have been removed from this README.
glab is available on the KISS Linux Community Repo as gitlab-glab.
If you already have the community repo configured in your KISS_PATH you can install glab through your terminal.
kiss b gitlab-glab && kiss i gitlab-glab
Alpine Linux
glab is available on the Alpine Community Repo as glab.
Install
We use --no-cache so we don't need to do an apk update before.
apk add --no-cache glab
Install a pinned version from edge
To ensure that by default edge will be used to get the latest updates. We need the edge repository under /etc/apk/repositories.
Afterwards you can install it with apk add --no-cache glab@edge
We use --no-cache so we don't need to do an apk update before.
echo "@edge http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
apk add --no-cache glab@edge
Alpine Linux Docker-way
Use edge directly
FROM alpine:3.13
RUN apk add --no-cache glab
Fetching latest glab version from edge
FROM alpine:3.13
RUN echo "@edge http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk add --no-cache glab@edge
Nix/NixOS
Nix/NixOS users can install from nixpkgs:
nix-env -iA nixos.glab
macOS
Homebrew
glab is available via Homebrew
brew install glab
Updating:
brew upgrade glab
MacPorts
glabis also available via MacPorts
sudo port install glab
Updating:
sudo port selfupdate && sudo port upgrade glab
Building From Source
If a supported binary for your OS is not found at the releases page, you can build from source:
Prerequisites for building from source
make- Go 1.13+
-
Verify that you have Go 1.13+ installed
$ go version go version go1.14If
gois not installed, follow instructions on the Go website. -
Clone this repository
git clone https://github.com/profclems/glab.git cd glabIf you have $GOPATH/bin or $GOBIN in your $PATH, you can just install with
make install(install glab in $GOPATH/bin) and skip steps 3 and 4. -
Build the project
make -
Change PATH to find newly compiled
glabexport PATH=$PWD/bin:$PATH -
Run
glab versionto confirm that it worked
Authentication
Get a GitLab access token at https://gitlab.com/-/profile/personal_access_tokens or https://gitlab.example.com/-/profile/personal_access_tokens if self-hosted
-
start interactive setup
glab auth login -
authenticate against gitlab.com by reading the token from a file
glab auth login --stdin < myaccesstoken.txt -
authenticate against a self-hosted GitLab instance by reading from a file
glab auth login --hostname salsa.debian.org --stdin < myaccesstoken.txt -
authenticate with token and hostname (Not recommended for shared environments)
glab auth login --hostname gitlab.example.org --token xxxxx
Configuration
By default, glab follows the XDG Base Directory Spec: global configuration file is saved at ~/.config/glab-cli. Local configuration file is saved at .git/glab-cli in the current working git directory. Advanced workflows may override the location of the global configuration by setting the GLAB_CONFIG_DIR environment variable.
To set configuration globally
glab config set --global editor vim
To set configuration for current directory (must be a git repository)
glab config set editor vim
To set configuration for a specific host
Use the --host flag to set configuration for a specific host. This is always stored in the global config file with or without the global flag.
glab config set editor vim -
Related Skills
apple-reminders
344.1kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
344.1kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
344.1kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
