glab-config
Skill49 starsChanged 3 days agoMITView on GitHub
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.
- Reads credentials
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Use canonical keys in new automation.
- Very specific: line 88
Treat custom header values as credentials.
- Very specific: line 104
Use glab config path instead of hard-coding the global config file location.
- Very specific: line 112
When a sandboxed tool needs permission to let glab refresh or rewrite credentials, grant write access to the directory from glab config …
- Very specific: line 124
Keep these env files outside version control, restrict their permissions (for example chmod 600), be mindful of backup exposure, and use …
- Distinctive: line 136
Use distinct GitLab bot/service accounts when agents need distinct visible identities.
- Very specific: line 140
Use GLAB_NO_PROMPT=1 for non-interactive automation that must fail instead of prompting.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
glab config
Host selection and output rendering
The configured host key is a fallback, not a constraint on repository remotes. Inside a repository, a remote on another host can select that host. Environment host selectors (GITLAB_HOST, GITLAB_URI, GL_HOST, or the corresponding CI auto-login source) remain authoritative; no matching remote produces an error rather than silently switching hosts. Explicit full-URL repository selectors carry their own host. This host-selection rule is separate from normal setting precedence: environment values, non-empty per-host settings/eligible keyring credentials, local config, global config, then defaults.
Environment credential precedence applies only to trusted hosts; a host supplied solely in a command argument receives no environment token. See glab-auth for default-host, configured-host, GITLAB_REPO, port, and CI rules. Host selection and credential eligibility are separate checks.
Global output color is controlled by GLAB_COLOR=auto|never|always or the global color config key. always/never override NO_COLOR; auto detects terminal output and honors legacy color environment behavior. There is no global --color CLI flag. glab mr diff --color is a separate command-specific option; label color flags set label metadata. For credential-free, uncolored help use GLAB_COLOR=never glab help <command>.
glamour_style defaults to auto and detects the terminal background; explicit dark, light, notty, and custom styles remain available. Existing seeded dark defaults can migrate once to auto; use an explicit environment style override when deterministic rendering matters. Help retains Fang's indented uppercase headings and can wrap or truncate examples. Preserve exact help output when capturing references, and use supported JSON output rather than parsing terminal formatting. Error text is displayed as written, so punctuation is not a stable parsing contract.
Overview
Authored synopsis (not a binary capture). The complete captured help, including per-key environment aliases, scope, and warnings, is in references/commands.md.
- Global behavior:
branch_prefix,browser,check_update,color,debug,display_hyperlinks,duo_cli_auto_download,duo_cli_auto_run,editor,git_protocol,glab_pager,glamour_style,host,no_prompt,notify_skill_updates,orbit_cli_auto_download,orbit_cli_auto_run,remote_alias,show_whats_new, andtelemetry. - Per-host behavior:
api_host,api_protocol,artifact_registry_domains,ca_cert,client_cert,client_id,client_key,container_registry_domains,custom_headers,job_token,proxy,skip_tls_verify,ssh_host,subfolder,token, anduse_keyring. Select these with--host <hostname>. - Use canonical keys in new automation. Accepted compatibility aliases and their environment-variable precedence are documented below and in the full reference.
glab config [command] [--flags]
Commands:
edit Open the configuration file
get <key> Print a configuration value
path Print the global configuration file location
set <key> <value> Update a configuration value
Flags:
-g, --global Use global configuration
-h, --help Show helpQuick start
glab config --helpPer-host proxy configuration
Configure proxy for each GitLab host that requires a fixed proxy. This is useful when different GitLab instances (for example gitlab.com versus a self-hosted instance) require different proxy settings.
# Set the proxy for a specific host
glab config set proxy "http://proxy.example.com:8080" --host gitlab.mycompany.com
# Verify
glab config get proxy --host gitlab.mycompany.comPrecedence: A configured per-host proxy replaces environment-based proxy selection for that host. When it is unset, glab falls back to Go's standard HTTP_PROXY, HTTPS_PROXY, and NO_PROXY handling. proxy is host-scoped; use --host rather than writing a top-level value with --global.
Dynamic custom headers for authenticating proxies
For an authenticating proxy or access gateway, add a custom_headers list under the exact host entry in the global config. Each item must contain name and exactly one source: literal value, valueFromEnv, or valueFromCommand. Prefer valueFromEnv or a credential helper command so secrets are not stored directly in YAML.
hosts:
gitlab.example.com:
custom_headers:
- name: X-Proxy-Client-ID
value: public-client-id
- name: X-Proxy-Client-Secret
valueFromEnv: PROXY_CLIENT_SECRET
- name: Proxy-Authorization
valueFromCommand: proxy-token-helperUse glab config edit --global to edit the structured list; do not force it through a scalar config set call. A command source is split into an executable and arguments without an implicit shell, runs once per glab process with a 30-second timeout, and must print one non-empty line without NUL bytes. Its trimmed result is reused for all requests in that process, including OAuth refresh. If shell expansion is unavoidable, invoke a reviewed shell explicitly; otherwise prefer valueFromEnv.
Treat custom header values as credentials. Keep literal secrets out of config, logs, command arguments, and repositories. Verify the host before enabling a header because glab attaches configured headers to requests for that host.
Configuration file search order
glab uses this global config selection:
$GLAB_CONFIG_DIR/config.ymlwhenGLAB_CONFIG_DIRis 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.ymlfor system-wide defaults. The usual Linux default is/etc/xdg/glab-cli/config.yml; on macOS, setXDG_CONFIG_DIRSexplicitly 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.
Locate the active global config
Use glab config path instead of hard-coding the global config file location. It prints the path even when the file does not exist yet; --dir prints the parent directory.
glab config path
glab config path --dir
$EDITOR "$(glab config path)"When a sandboxed tool needs permission to let glab refresh or rewrite credentials, grant write access to the directory from glab config path --dir, not just the config.yml file. glab writes a temporary file in that directory and then replaces the config file.
Env-first agent pattern
For agentic setups, prefer per-agent env files over one shared shell profile. Example:
# ~/.config/openclaw/env/gitlab-reviewer.env
GITLAB_TOKEN=glpat-...
GITLAB_HOST=gitlab.comKeep 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 +aA 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-runFor configuration-backed environment overrides, use the environment-variable list from the config schema: the first set variable wins, in the order shown per key by glab config --help or on the configuration documentation’s environment-variable section, which is generated from the same schema. Prefer the GLAB_-prefixed names in new automation when one exists; older names remain compatibility fallbacks later in that same ordered list.
Representative schema-order examples:
remote_alias:GLAB_REMOTE_ALIAS,GIT_REMOTE_URL_VAR,GIT_REMOTE_ALIAS,REMOTE_ALIAS,REMOTE_NICKNAME,GIT_REMOTE_NICKNAMEeditor:GLAB_EDITOR,VISUAL,EDITORcheck_update:GLAB_CHECK_UPDATE,CHECK_UPDATEglamour_style:GLAB_GLAMOUR_STYLE,GLAMOUR_STYLEno_prompt:GLAB_NO_PROMPT,NO_PROMPT,PROMPT_DISABLEDapi_protocol:GLAB_API_PROTOCOL,API_PROTOCOLartifact_registry_domains:GLAB_ARTIFACT_REGISTRY_DOMAINS,ARTIFACT_REGISTRY_DOMAINScontainer_registry_domains:GLAB_CONTAINER_REGISTRY_DOMAINS,CONTAINER_REGISTRY_DOMAINSduo_cli_auto_downloadandduo_cli_auto_run:GLAB_DUO_CLI_AUTO_DOWNLOAD/DUO_CLI_AUTO_DOWNLOAD,GLAB_DUO_CLI_AUTO_RUN/DUO_CLI_AUTO_RUNorbit_cli_auto_downloadandorbit_cli_auto_run:GLAB_ORBIT_CLI_AUTO_DOWNLOAD/ORBIT_CLI_AUTO_DOWNLOAD,GLAB_ORBIT_CLI_AUTO_RUN/ORBIT_CLI_AUTO_RUNproxy,skip_tls_verify, anduse_keyring:GLAB_PROXY/PROXY,GLAB_SKIP_TLS_VERIFY/SKIP_TLS_VERIFY,GLAB_USE_KEYRING/USE_KEYRING
Existing GitLab-specific names such as GITLAB_HOST, GITLAB_API_HOST, GITLAB_CLIENT_ID, GITLAB_SSH_HOST, GITLAB_SUBFOLDER, and token variables retain their documented names. Do not rename secrets or host selectors speculatively.
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.
Registered aliases are accepted case-insensitively and persist under their canonical key. For example, glab config set visual nano --global updates editor; both glab config get visual --global and glab config get editor --global then resolve the same value. Prefer canonical names in new automation even though aliases remain supported.
glab_pager and debug are valid global settings. GLAB_PAGER takes precedence over glab_pager, which takes precedence over PAGER; GLAB_DEBUG can override the persisted debug setting.
Common Settings
# View current config
glab config get --global
# Set default editor
glab config set editor vim --global
# Set pager
glab config set glab_pager "less -R" --global
# Enable detailed glab/Git/DNS diagnostics
glab config set debug true --global
# Disable update checks
glab config set check_update false --global
# Select the Git remote glab should prefer
glab config set remote_alias origin --global
# Allow Duo CLI to download and run without wrapper prompts
glab config set duo_cli_auto_download true --global
glab config set duo_cli_auto_run true --global
# Set default host
glab config set host https://gitlab.mycompany.com --globalSubcommands
See references/commands.md for full --help output.
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- a-ng-d/claude-ui-color-palette★ 146% same
- cormacc/dotagents★ 168% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- gitlab-cli-skillsSkill
- glab-aliasSkill
- glab-apiSkill
- glab-artifact-registrySkill
- glab-attestationSkill
- glab-authSkill
- glab-changelogSkill
- glab-check-updateSkill
- glab-ciSkill
- glab-clusterSkill
- glab-completionSkill
- glab-container-registrySkill
- glab-dependency-firewallSkill
- glab-deploy-keySkill
- glab-deploy-tokenSkill
- glab-duoSkill
- glab-governSkill
- glab-gpg-keySkill
- glab-helpSkill
- glab-incidentSkill
- glab-issueSkill
- glab-iterationSkill
- glab-jobSkill
- glab-labelSkill
- glab-mcpSkill
- glab-milestoneSkill
- glab-mrSkill
- glab-opentofuSkill
- glab-orbitSkill
- glab-packagesSkill
- glab-quick-actionsSkill
- glab-releaseSkill
- glab-repoSkill
- glab-runner-controllerSkill
- glab-runnerSkill
- glab-scheduleSkill
- glab-securefileSkill
- glab-securitySkill
- glab-skillsSkill
- glab-snippetSkill
- glab-ssh-keySkill
- glab-stackSkill
- glab-todoSkill
- glab-tokenSkill
- glab-userSkill
- glab-variableSkill
- glab-versionSkill
- glab-whatsnewSkill
- glab-workitemsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

