# Linux / macOS (bash/zsh)
GH_TELEMETRY=log gh repo list --archived # Windows PowerShell
$env:GH_TELEMETRY="log"; gh repo list --archived # Windows CMD
set GH_TELEMETRY=log && gh repo list --archived
# Linux / macOS (bash/zsh)
GH_TELEMETRY=log gh repo list --archived # Windows PowerShell
$env:GH_TELEMETRY="log"; gh repo list --archived # Windows CMD
set GH_TELEMETRY=log && gh repo list --archived
# Linux / macOS (bash/zsh)
GH_TELEMETRY=log gh repo list --archived # Windows PowerShell
$env:GH_TELEMETRY="log"; gh repo list --archived # Windows CMD
set GH_TELEMETRY=log && gh repo list --archived
{ "events": [{ "type": "command_invocation", "dimensions": { "agent": "", "architecture": "arm64", "command": "gh repo list", "device_id": "1e9a73a6-c8bd-4e1e-be02-78f4b11de4e1", "flags": "archived", "invocation_id": "eda780f5-27f9-433c-a7ae-7a033361e572", "is_tty": "true", "os": "darwin", "timestamp": "2026-04-16T14:55:13.418Z", "version": "2.91.0" } }]
}
{ "events": [{ "type": "command_invocation", "dimensions": { "agent": "", "architecture": "arm64", "command": "gh repo list", "device_id": "1e9a73a6-c8bd-4e1e-be02-78f4b11de4e1", "flags": "archived", "invocation_id": "eda780f5-27f9-433c-a7ae-7a033361e572", "is_tty": "true", "os": "darwin", "timestamp": "2026-04-16T14:55:13.418Z", "version": "2.91.0" } }]
}
{ "events": [{ "type": "command_invocation", "dimensions": { "agent": "", "architecture": "arm64", "command": "gh repo list", "device_id": "1e9a73a6-c8bd-4e1e-be02-78f4b11de4e1", "flags": "archived", "invocation_id": "eda780f5-27f9-433c-a7ae-7a033361e572", "is_tty": "true", "os": "darwin", "timestamp": "2026-04-16T14:55:13.418Z", "version": "2.91.0" } }]
}
gh config set telemetry disabled
gh config set telemetry disabled
gh config set telemetry disabled
RUN gh config set telemetry disabled
# o, más limpio:
ENV GH_TELEMETRY=false
ENV DO_NOT_TRACK=1
RUN gh config set telemetry disabled
# o, más limpio:
ENV GH_TELEMETRY=false
ENV DO_NOT_TRACK=1
RUN gh config set telemetry disabled
# o, más limpio:
ENV GH_TELEMETRY=false
ENV DO_NOT_TRACK=1
# Verificar variable de entorno
echo $GH_TELEMETRY # Linux / macOS
$env:GH_TELEMETRY # Windows PowerShell # Verificar configuración persistente
gh config get telemetry
# Verificar variable de entorno
echo $GH_TELEMETRY # Linux / macOS
$env:GH_TELEMETRY # Windows PowerShell # Verificar configuración persistente
gh config get telemetry
# Verificar variable de entorno
echo $GH_TELEMETRY # Linux / macOS
$env:GH_TELEMETRY # Windows PowerShell # Verificar configuración persistente
gh config get telemetry
graph LR A["gh comando"] --> B{"DO_NOT_TRACK set?"} B -->|"Si"| X["No envia"] B -->|"No"| C{"GH_TELEMETRY=false?"} C -->|"Si"| X C -->|"No"| D{"config disabled?"} D -->|"Si"| X D -->|"No"| E["Construye payload"] E --> F["Envia a analytics"]
graph LR A["gh comando"] --> B{"DO_NOT_TRACK set?"} B -->|"Si"| X["No envia"] B -->|"No"| C{"GH_TELEMETRY=false?"} C -->|"Si"| X C -->|"No"| D{"config disabled?"} D -->|"Si"| X D -->|"No"| E["Construye payload"] E --> F["Envia a analytics"]
graph LR A["gh comando"] --> B{"DO_NOT_TRACK set?"} B -->|"Si"| X["No envia"] B -->|"No"| C{"GH_TELEMETRY=false?"} C -->|"Si"| X C -->|"No"| D{"config disabled?"} D -->|"Si"| X D -->|"No"| E["Construye payload"] E --> F["Envia a analytics"] - command — el subcomando ejecutado, por ejemplo gh repo list o gh pr create.
- flags — las flags utilizadas, sin sus valores (se envía archived, no archived=true).
- device_id — UUID generado localmente por instalación, no vinculado a tu cuenta de GitHub.
- invocation_id — UUID único por cada invocación individual del comando.
- os — sistema operativo detectado: darwin, linux o windows.
- architecture — arquitectura del CPU: arm64, amd64, etc.
- version — versión instalada de gh, por ejemplo 2.91.0.
- is_tty — si la salida va a una terminal interactiva o está redirigida a pipe/script.
- agent — identificador del agente que invoca, vacío cuando es un humano.
- timestamp — fecha y hora de ejecución en formato UTC ISO 8601. - Más granularidad agentic. El campo agent actualmente está vacío para invocaciones humanas. A medida que agentes LLM se identifiquen correctamente vía headers o variables dedicadas, GitHub podrá segmentar métricas humanas vs. agentes y ajustar el diseño de subcomandos en consecuencia.
- Estándar para extensiones. Es probable que surja una guía o SDK oficial para que las extensiones adopten el mismo contrato de opt-out, unificando la experiencia del usuario y cerrando el punto ciego actual.
- Transparencia extendida. Dado que el código es open source en el repositorio cli/cli, analistas de privacidad pueden auditar la implementación real línea por línea. No hay sorpresas ocultas, y eso refuerza la credibilidad del mensaje.
- Presión regulatoria creciente. Con GDPR, CCPA y regulaciones LATAM emergentes —como la LGPD brasileña o la Ley Federal de Protección de Datos Personales en México— cualquier recolección requiere base legal clara y mecanismos documentados de opt-out. GitHub está cumpliendo con el estándar mínimo de la industria, pero la barra va a seguir subiendo. - GitHub CLI — Telemetry — Política oficial de telemetría con todos los detalles técnicos y ejemplos de payload.
- cli/cli en GitHub — Código fuente del cliente gh, auditable públicamente bajo licencia MIT.
- Console Do Not Track — Convención abierta para la variable de entorno DO_NOT_TRACK en herramientas CLI.