---
title: "GitHub CLI, 이제 유사익명 텔레메트리 수집한다 — 옵트아웃하려면 직접 꺼야"
published: 2026-04-22T11:58:58.000Z
canonical: https://jeff.news/article/1881
---
# GitHub CLI, 이제 유사익명 텔레메트리 수집한다 — 옵트아웃하려면 직접 꺼야

GitHub CLI가 서브커맨드/플래그 사용 패턴을 수집하는 텔레메트리를 기본 활성화로 도입했다. 에이전트 워크로드에서의 사용 패턴 파악이 명분이며, 로깅 모드로 전송 내용을 미리 확인하거나 환경변수(DO_NOT_TRACK 포함)로 옵트아웃할 수 있다.

- GitHub CLI(`gh`)가 앞으로 사용 패턴을 수집하는 텔레메트리를 보내기 시작함
  - 공식 설명은 "제품 개선을 위한 익명 사용 데이터"지만, 옵트아웃하려면 직접 설정해야 하는 구조라 HN에서 불만이 쏟아짐
  - GitHub 측은 "에이전트(agentic) 도구로서 `gh`가 얼마나 쓰이는지 봐야 우선순위를 정할 수 있다"는 명분을 내세움

### 무엇을 보내나
- 어떤 서브커맨드를, 어떤 플래그 조합으로 썼는지가 핵심 수집 대상
  - 신규 서브커맨드를 출시하고도 아무도 안 쓰면 "발견성(discoverability)이 구린 거"라고 판단하는 용도
  - 특정 플래그가 많이 쓰이면 그쪽 UX에 투자하겠다는 식
- 데이터는 GitHub 내부 분석 인프라로 전송됨 — 프라이버시 정책은 GitHub General Privacy Statement 적용

### 실제로 뭐 나가는지 먼저 보고 싶다면
- 환경변수나 CLI 설정으로 **로깅 모드**를 켤 수 있음 — 실제 전송은 안 하고 나갈 JSON payload만 stderr로 찍어줌
  - 어떤 필드가 포함되는지 전부 확인한 뒤 옵트인/아웃 결정 가능
  - 단, 이 명령으로 찍히는 건 "그 순간 그 명령"에 한정 — 환경변수나 계정이 바뀌면 이벤트 차원도 달라짐

> [!TIP]
> 옵트아웃은 환경변수(`0`, `false`, `disabled`, 빈 문자열 모두 인식)나 CLI config로 가능. 업계 관례인 `DO_NOT_TRACK` 환경변수도 지원한다. 환경변수가 config보다 우선순위 높음.

### 놓치면 안 되는 부분
- `gh` 확장(extension) — 특히 서드파티/에이전트 확장은 **자체적으로 별도 텔레메트리를 수집**할 수 있음
  - GitHub 쪽 옵트아웃으로는 확장의 수집을 막을 수 없음. 각 확장 문서를 따로 확인해야 함
- `gh`는 오픈소스라 `cli/cli` 레포에서 텔레메트리 구현 코드를 직접 읽어볼 수 있다는 점은 그나마 투명성 확보 포인트

---

## 기술 맥락

- 왜 "에이전트 시대"에 CLI 텔레메트리가 이슈인지 — 요즘 Claude Code, Codex, Aider 같은 에이전트가 사람 대신 `gh` 명령을 자동으로 호출해요. GitHub 입장에선 "사람이 쳤는지 에이전트가 쳤는지"까지 구분해야 어떤 서브커맨드에 투자할지 판단이 서거든요. 그래서 이번 변경이 agentic 워크로드 대응이라는 명분을 단 거예요
- 옵트인이 아니라 옵트아웃 구조라는 게 핵심 논점 — 기본값이 "보냄"이면 대다수 사용자는 그냥 보내게 돼요. GitHub CLI가 개발자 워크스테이션과 CI 러너에 거의 표준처럼 깔려 있다 보니, 이게 축적되면 꽤 상세한 개발 활동 시그널이 잡힐 수 있어요
- `DO_NOT_TRACK` 지원은 작은 디테일이지만 의미가 있어요 — 이건 업계에서 비공식적으로 합의된 관례인데, 브라우저의 DNT 헤더처럼 "모든 앱이 이 환경변수를 존중하자"는 약속이에요. 이걸 지원한다는 건 최소한 표준 옵트아웃 컨벤션은 따른다는 뜻이에요
- CI 환경에서 특히 주의할 부분 — GitHub Actions, Jenkins, GitLab Runner 등에서 `gh`를 래퍼로 쓰는 조직이 많은데, 기본값이 on이면 매 파이프라인 실행마다 이벤트가 쌓여요. 인프라 레벨에서 `GH_NO_TELEMETRY=1` 같은 변수를 전역으로 세팅해두는 게 안전해요

## 핵심 포인트

- 수집 대상은 어떤 서브커맨드를 어떤 플래그로 썼는지 등 사용 패턴 중심
- 옵트아웃은 환경변수 또는 CLI config로 가능하며 DO_NOT_TRACK 관례 지원
- 로깅 모드를 켜면 전송될 JSON payload를 stderr로 먼저 확인 가능
- gh 확장/에이전트 확장은 별도로 텔레메트리를 수집할 수 있고 본체 옵트아웃으로 막히지 않음
- 구현 코드는 cli/cli 오픈소스 레포에서 확인 가능

## 인사이트

기본값이 '보냄'인 옵트아웃 구조라는 점이 핵심 논쟁점. CI 환경에 gh가 광범위하게 깔려 있어 조직 차원에서 전역 환경변수로 막는 게 안전하다.
