| name | glab-config |
| description | Manage glab CLI configuration settings including defaults, preferences, and per-host settings. Use when configuring glab behavior, setting defaults, or viewing current configuration. Triggers on config, configuration, settings, glab settings, set default. |
glab config
Overview
Manage key/value strings.
Current respected settings:
- branch_prefix: Prefix used by glab stack for generated branch names. Defaults to the operating system account username, then `glab-stack` if user lookup fails.
- browser: If unset, uses the default browser. Override with environment variable $BROWSER.
- check_update: Notify about new glab versions. Override with $GLAB_CHECK_UPDATE.
- display_hyperlinks: Enable terminal hyperlinks. Override with $FORCE_HYPERLINKS.
- duo_cli_auto_download / duo_cli_auto_run: Skip Duo CLI download/run prompts.
- editor: If unset, uses the default editor. Override with environment variable $EDITOR.
- git_protocol: Git protocol, ssh or https.
- glab_pager: Pager command, such as less -R.
- glamour_style: Markdown renderer style: dark, light, notty, or a custom glamour style.
- host: If unset, defaults to `https://gitlab.com`.
- no_prompt: Disable interactive prompts. Prefer the $GLAB_NO_PROMPT override in automation.
- notify_skill_updates: Show installed agent-skill update notices. Override with $GLAB_NOTIFY_SKILL_UPDATES.
- orbit_local_auto_download / orbit_local_auto_run: Skip Orbit local CLI download/run prompts.
- remote_alias: Preferred Git remote name when multiple remotes exist.
- show_whats_new: Show the one-time post-upgrade glab whatsnew banner. Override with $GLAB_SHOW_WHATS_NEW.
- telemetry: Enable usage data to the GitLab instance. Override with $GLAB_SEND_TELEMETRY.
- token: Your GitLab access token. Defaults to environment variables.
- visual: Takes precedence over editor. Override with $VISUAL.
USAGE
glab config [command] [--flags]
COMMANDS
edit [--flags] Opens the glab configuration file.
get <key> [--flags] Prints the value of a given configuration key.
set <key> <value> [--flags] Updates configuration with the value of a given key.
FLAGS
-g --global Use global config file.
-h --help Show help for this command.
Quick start
glab config --help
Per-host HTTPS proxy configuration
You can configure an HTTPS proxy on a per-host basis. This is useful when different GitLab instances (for example gitlab.com vs a self-hosted instance) require different proxy settings.
glab config set https_proxy "http://proxy.example.com:8080" --host gitlab.mycompany.com
glab config set https_proxy "http://proxy.example.com:8080" --global
glab config get https_proxy --host gitlab.mycompany.com
Precedence: Per-host config overrides global config. Global config overrides the HTTPS_PROXY / https_proxy environment variables.
Configuration file search order
glab uses this global config selection:
$GLAB_CONFIG_DIR/config.yml when GLAB_CONFIG_DIR is set. This is an explicit override; glab uses this directory even when no config file exists there yet.
- Otherwise, the first existing normal candidate wins:
~/.config/glab-cli/config.yml, retained as the legacy location.
$XDG_CONFIG_HOME/glab-cli/config.yml (on macOS this defaults to ~/Library/Application Support/glab-cli/config.yml).
$XDG_CONFIG_DIRS/glab-cli/config.yml for system-wide defaults. The usual Linux default is /etc/xdg/glab-cli/config.yml; on macOS, set XDG_CONFIG_DIRS explicitly when relying on system-wide config.
Files are not merged. If both the legacy and platform-specific XDG files exist, glab uses the legacy file and warns. Repository-local settings live in .git/glab-cli/config.yml, while per-host settings are stored in the selected global file. Prefer glab config get, set, and edit over directly modifying files, and do not copy stored tokens into logs or version control.
Env-first agent pattern
For agentic setups, prefer per-agent env files over one shared shell profile. Example:
GITLAB_TOKEN=glpat-...
GITLAB_HOST=gitlab.com
Keep these env files outside version control, restrict their permissions (for example chmod 600), be mindful of backup exposure, and use least-privilege bot/service-account tokens.
Load plain KEY=value env files like this so the variables are exported to glab:
set -a
source ~/.config/openclaw/env/gitlab-<agent>.env
set +a
A plain source ~/.config/openclaw/env/gitlab-<agent>.env updates the current shell but may leave the values unexported. In that case glab can miss the env overrides and silently reuse stored auth from the active global config file.
Use distinct GitLab bot/service accounts when agents need distinct visible identities. Multiple PATs on one GitLab user still act as that same user.
Non-interactive prompts and config validation
Use GLAB_NO_PROMPT=1 for non-interactive automation that must fail instead of prompting. Upstream docs now prefer the GLAB_-prefixed name; older NO_PROMPT is deprecated and should not be used in new scripts.
GLAB_NO_PROMPT=1 glab repo prune --dry-run
glab config set validates keys against the canonical config schema. If a set operation fails, check the spelling and whether the setting is host-scoped (--host) or global (--global) rather than forcing an unknown key into the config file.
Common Settings
glab config get --global
glab config set editor vim --global
glab config set glab_pager "less -R" --global
glab config set check_update false --global
glab config set remote_alias origin --global
glab config set duo_cli_auto_download true --global
glab config set duo_cli_auto_run true --global
glab config set host https://gitlab.mycompany.com --global
Subcommands
See references/commands.md for full --help output.