GitHub CLI bắt đầu thu thập dữ liệu ẩn danh: Cách kiểm tra và tắt
GitHub CLI hiện đã kích hoạt tính năng thu thập dữ liệu telemetry giả ẩn danh để tối ưu hóa trải nghiệm người dùng. Bạn có thể xem trước nội dung dữ liệu được gửi và hoàn toàn có thể từ chối tính năng này thông qua cài đặt đơn giản. Động thái này giúp đội ngũ phát triển xác định được các tính năng phổ biến và cần cải thiện.

GitHub CLI chính thức thu thập dữ liệu ẩn danh để cải thiện sản phẩm
GitHub CLI (công cụ dòng lệnh của GitHub) hiện đã bắt đầu gửi dữ liệu telemetry (dữ liệu chẩn đoán) giả ẩn danh về máy chủ. Mục đích của việc này là giúp đội ngũ phát triển hiểu rõ hơn về cách người dùng sử dụng công cụ, từ đó ưu tiên các tính năng cần thiết và cải thiện trải nghiệm tổng thể.
Dưới đây là chi tiết về cách thức hoạt động, cách xem trước dữ liệu và hướng dẫn tắt tính năng này nếu bạn lo ngại về quyền riêng tư.
Tại sao GitHub CLI thu thập dữ liệu?
Theo đội ngũ phát triển, việc sử dụng GitHub CLI ngày càng mở rộng, đặc biệt là trong bối cảnh các tác nhân AI (AI agents) bắt đầu sử dụng công cụ này nhiều hơn. Dữ liệu telemetry cung cấp cái nhìn trực quan về cách các tính năng được vận hành trong thực tế.
Ví dụ, khi GitHub tung ra một lệnh con (subcommand) mới, họ cần biết liệu có ai sử dụng nó hay không và cách sử dụng đó như thế nào. Nếu tỷ lệ sử dụng thấp, họ sẽ biết cần phải cải thiện khả năng khám phá hoặc thiết kế lại tính năng. Ngược lại, nếu một lệnh cụ thể được sử dụng thường xuyên với các cờ (flags) nhất định, GitHub sẽ biết nơi cần đầu tư để nâng cao trải nghiệm.
Cách xem trước dữ liệu (Logging Mode)
Vì GitHub CLI là mã nguồn mở, bạn có thể xem xét cách triển khai telemetry trong kho lưu trữ cli/cli. Tuy nhiên, nếu bạn muốn xem chính xác dữ liệu sẽ được gửi đi mà không thực sự gửi nó, bạn có thể bật chế độ ghi nhật ký (logging mode).
Sử dụng biến môi trường:
export GH_TELEMETRY=log
Hoặc sử dụng cấu hình CLI:
gh config set telemetry log
Trong chế độ này, tải trọng JSON (JSON payload) thường được gửi đi sẽ được in ra stderr thay thế. Điều này cho phép bạn kiểm tra mọi trường dữ liệu trước khi quyết định giữ bật hay tắt telemetry.
Ví dụ, khi chạy lệnh:
GH_TELEMETRY=log gh repo list --archived
Bạn sẽ thấy kết quả tương tự như sau:
Telemetry payload:
{
"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"
}
}
]
}
Lưu ý rằng lệnh này chỉ ghi log telemetry cho lệnh và ngữ cảnh chính xác mà nó chạy. Việc thay đổi biến môi trường hoặc tài khoản xác thực có thể thay đổi các sự kiện và thông số được bao gồm trong tải trọng.
Cách tắt tính năng Telemetry (Opt-out)
Nếu bạn không muốn chia sẻ dữ liệu sử dụng, bạn có thể từ chối (opt-out) rất dễ dàng bằng cách sử dụng biến môi trường hoặc tùy chọn cấu hình.
Sử dụng biến môi trường:
export GH_TELEMETRY=false
Bất kỳ giá trị nào là "falsy" đều hoạt động: 0, false, disabled, hoặc một chuỗi rỗng. Bạn cũng có thể sử dụng quy ước DO_NOT_TRACK:
export DO_NOT_TRACK=true
Sử dụng cấu hình CLI:
gh config set telemetry disabled
Lưu ý quan trọng: Biến môi trường sẽ được ưu tiên hơn giá trị cấu hình.
Lưu ý quan trọng về Tiện ích mở rộng (Extensions)
GitHub CLI cho phép bạn thêm tính năng vào sản phẩm bằng cách cài đặt các tiện ích mở rộng của GitHub và bên thứ ba, bao gồm cả các tác nhân (agents). Những tiện ích mở rộng này có thể tự thu thập dữ liệu sử dụng riêng của chúng và việc bạn tắt telemetry của GitHub CLI không kiểm soát được hoạt động này.
Bạn nên tham khảo tài liệu của từng tiện ích mở rộng cụ thể để biết về báo cáo telemetry của nó và liệu nó có thể bị tắt hay không.
Trang này mô tả việc thu thập dữ liệu phía máy khách cho GitHub CLI (gh). Nó không áp dụng cho GitHub Copilot hoặc Copilot CLI, các sản phẩm này xử lý việc thu thập dữ liệu riêng biệt.



