CLI Completion Issues in Git Bash

usabilityActiveRising

The Azure CLI Bash completion script does not function correctly in Git Bash on Windows, leading to incorrect suggestions when using the Tab key.

Opportunity Score (Heuristic (unvalidated)):60 · High · heuristic
First seen: 9/30/2026
Last seen: 9/30/2026

Score Breakdown

Heuristic ranking from public discussion signals — not a validated prediction of commercial opportunity, demand, or willingness to pay.

Composite 60/100 (High, unvalidated). Top driver: Severity (25% weight, 17.5 pts).

Frequency · 25% · 17 pts · XPS relevance68

Heuristic only — often urgency map or random scaffolding on ingest, not measured mention frequency. Maps to XPS relevance (with market size).

Severity · 25% · 17.5 pts · XPS quality70

LLM/mock judgment of intensity from title/summary text — not ops or ticket data. Maps to XPS quality (with willingness to pay).

Willingness to pay · 30% · 13.5 pts · XPS quality45

LLM/mock purchase-intent guess from text — not invoices, surveys, or paid seats. Maps to XPS quality.

Trend · 10% · 6.5 pts · XPS novelty65

Heuristic/scaffold (often random or fixed on insert) — not a verified mention trajectory. Maps to XPS novelty.

Market size · 10% · 5.5 pts · XPS relevance55

Heuristic/scaffold (often random or fixed) — not TAM research. Maps to XPS relevance (with frequency).

Catalog notes (not predictive analysis)

CLI Completion Issues in Git Bash (usability). Catalog heuristic opportunity score: 60/100 — a chosen formula over discussion-signal facets, not evidence of demand, conversion, or willingness to pay. Treat as browsing rank, not a commercial prediction.

The Azure CLI Bash completion script does not function correctly in Git Bash on Windows, leading to incorrect suggestions when using the Tab key.

Source Examples

azure/azure-cli Issues·Sep 30, 2026
“Add support for cli completion in git bash for windows ## Request Please make the Azure CLI Bash completion script honor `ARGCOMPLETE_USE_TEMPFILES` by using `_ARGCOMPLETE_STDOUT_FILENAME` and reading the completion results from that file. This would allow Git Bash on Windows to use the completion script without users replacing its completion function in their `.bashrc`. Alternatively, document the Git Bash limitation and this workaround. ## Reproduction On Windows 11 with Git Bash and Azure CLI installed via the Windows MSI, sourcing the upstream `az.completion` script and setting `ARGCOMPLETE_USE_TEMPFILES=1` is not sufficient: pressing Tab after `az ` offers filesystem paths instead of CLI commands. The tempfile-aware function below works in this environment. I tested it with Azure CLI 2.90.0. It creates `_ARGCOMPLETE_STDOUT_FILENAME`, reads the completion results from the temporary file, and cleans it up. Related discussion: Azure CLI #26051, which describes the Git Bash file descriptor limitation. ## Environment - OS: Windows 11 - Shell: Git Bash (`MINGW64`) - Azure CLI installation: Windows MSI - Azure CLI version: ``` { "azure-cli": "2.90.0", "azure-cli-core": "2.90.0", "azure-cli-telemetry": "1.1.0", "extensions": { "azure-devops": "1.0.8" } } ``` ## Workaround Using the stock bash completion file `curl -fsSL https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion -o ~/.azure/.az.completion` The completion in this scenario needs to use temp files and to get this going you need the completion to also be temp-file aware like this: ```bash if [[ -r "$HOME/.azure/.az.completion" ]]; then export ARGCOMPLETE_USE_TEMPFILES=1 source "$HOME/.azure/.az.completion" _az_python_argcomplete() { local IFS=$'\013' local SUPPRESS_SPACE=0 local TMPFILE local STATUS if compopt +o nospace 2>/dev/null; then SUPPRESS_SPACE=1 fi TMPFILE=$(mktemp) || return 1 COMPREPLY=($( IFS="$IFS" \ COMP_LINE="$COMP_LINE" \ COMP_POINT="$COMP_POINT" \ COMP_TYPE="$COMP_TYPE" \ _ARGCOMPLETE_COMP_WORDBREAKS="$COMP_WORDBREAKS" \ _ARGCOMPLETE=1 \ _ARGCOMPLETE_SUPPRESS_SPACE=$SUPPRESS_SPACE \ ARGCOMPLETE_USE_TEMPFILES=1 \ _ARGCOMPLETE_STDOUT_FILENAME="$TMPFILE" \ "$1" 8>&1 9>&2 1>/dev/null 2>/dev/null STATUS=$? cat "$TMPFILE" rm -f "$TMPFILE" exit "$STATUS" )) STATUS=$? if [[ $STATUS != 0 ]]; then unset COMPREPLY elif [[ $SUPPRESS_SPACE == 1 ]] && [[ "${COMPREPLY[0]}" =~ [=/:]$ ]]; then compopt -o nospace fi } fi ```”
— ssaarinen↗

Competitive Landscape

  • Existing solutions are either too expensive or too limited
  • Most competitors target enterprise, leaving mid-market underserved
  • Community scripts and manual processes are the primary alternative

Recommended Next Steps

  1. ✓Validate pain intensity with 5-10 target customer interviews
  2. ✓Build minimal viable solution addressing the core workflow
  3. ✓Test pricing with early adopters from community forums

Related Pain Points

Target Customers

  • IT teams at mid-size organizations (100-2000 employees)
  • MSPs and consultants managing multiple client environments
  • Teams without dedicated specialist staff for this domain

Monetization Ideas

  1. 1SaaS subscription model ($99-$499/month depending on scale)
  2. 2Usage-based pricing aligned with value delivered
  3. 3Freemium tier to drive adoption and prove value