
2026/04/22 20:58
GitHub CLI は、今後は擬似匿名化されたテレメトリー情報を収集します。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
GitHub のコマンドラインツールは、新機能の優先順位付けや機能採用状況の評価を支援するため、匿名化された利用データを自動的に送信しています。この慣行により、チームはどのコマンド、フラグ、サブコマンドが最も頻繁に使用されているかを理解できます。実装全体はオープンソースであり、ユーザーには完全な透明性が保証されており、ローカルで正確に何のデータが送信されているかを検証したり、単純な設定変更で送受信を完全に停止したりすることができます。
GH_TELEMETRY=false などの環境変数を設定することで、0、false、disabled、空文字列を受け付けるため、いかなる情報も送信せずに opting out を行うことができます。あるいは、「logging モード」により gh config set telemetry log を実行することで、送信前に生の JSON ペイロードを確認することができ、このモードでは JSON ペイロードが stderr に印刷され、コマンド、device_id、OS、バージョン、フラグ、タイムスタンプなどのフィールドが表示されます。例えば、gh repo list --archived のペイロードには、エージェント(空)、アーキテクチャ arm64、OS darwin といったディメンションがバージョン 2.91.0 で含まれています。ロギングは正確なコマンドとコンテキストに固有であり、環境変数の変更や認証済みアカウントの変更により含まれるイベントやディメンションが変わる可能性があります。
収集されたすべてのデータは、ユーザーの匿名性を保護するために GitHub の標準プライバシーガイドラインに従い、GitHub の一般的なプライバシー声明に基づいて内部分析インフラストラクチャに送信されます。ただし、このポリシーが厳密にはコア CLI だけの適用対象であることに留意することが重要です。同じ環境内にインストールされたサードパーティ製のエンドーションは、これらの設定を通じて無効化することもできず、独立して独自の利用データを収集し続ける可能性があります。したがって、GitHub CLI のテレメトリを無効にしても、他のアプリケーションが情報を収集することを防ぐことはできません。完全なプライバシーを求めたいユーザーは、各エンドーションの設定を個別に管理する必要があります。本ドキュメントではプライマリの CLI の振る舞いのみをカバーし、データ収集を独自に行う GitHub Copilot などのツールは除外しています。
本文
GitHub CLI は、製品の改善を支援するため、匿名化されたテレメトリデータを送信します。何样的なデータが、どの目的で送信されているのかをご理解いただくことを願っております。
なぜテレメトリデータを収集するのか
GitHub CLI に対するエージェントベースの採用が進むにつれて、我々のチームは、実際の実務現場において機能がいかなる形で利用されているかに目に見える情報を必要としています。我々はこのデータを用いて、優先すべき課題を特定し、各機能が本当に必要なユーザーのニーズに応えているかを評価しています。
たとえば、新たなサブコマンドを導入した際、実際に誰も利用しているのか、またどのように利用しているのかを理解したいと考えています。採用率が低い場合、その機能の発見容易性または設計の見直しが必要であると判断できます。一方、特定のフラグが付与されたサブコマンドが高頻度で使用されている場合、より良い使い心地を実現するためにどの分野に投資すべきかが示唆されます。
テレメトリデータの確認方法
GitHub CLI はオープンソースであり、テレメトリの実装を確認することは「cli/cli」リポジトリ内で可能です。しかしながら、実際にデータを送信せずに「いったい何が発送されるのか」を直視的に確認したい場合は、環境変数または設定オプションのいずれかを使ってロギングモードを有効にすることで実現できます。
- 環境変数:
GH_TELEMETRY=log - CLI 設定:
gh config set telemetry log
ロギングモードの有効化中は、通常は送信されるはずの JSON プローパが標準エラー出力(stderr)に出力されます。これにより、テレメトリ機能を維持するかどうかを判断する前に、各フィールドの内容を検証できます。例えば以下のようなコマンドを実行すると:
GH_TELEMETRY=log gh repo list --archived
以下のような内容が出力されます:
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" } } ] }
なお、このコマンドは、実行された特定の命令およびコンテキストにおいてのみテレメトリデータを記録します。環境変数の変更や認証アカウントの変更によって、プロロープに含まれるイベントやイベントのディメンションが変化することがあります。
どうすればオプトアウトできるのか
上記のロギングモードで確認できるテレメトリデータに対して、環境変数または設定オプションをいずれかを使ってオプトアウトできます。
- 環境変数:
export GH_TELEMETRY=false
任意の非真値(falsy value)を使用すると機能します:
0、false、disabled、または空文字など。また、「DO_NOT_TRACK」の慣習也可以使用します。
- CLI 設定:
gh config set telemetry disabled
注記: 環境変数は設定値に対して優先されます。
データがどこに送信されるか
テレメトリイベントは、GitHub の内部分析インフラストラクチャへ送信されます。GitHub がお客様のデータをどのように処理しているかについては、「GitHub 一般プライバシー方針」をご覧ください。
追加情報
GitHub CLI では、エージェントを含む GitHub およびサードパーティ製の拡張機能をインストールすることで、製品に機能を追加できます。これらの拡張機能は独自の利用状況データを収集しており、オプトアウトしてもその制御対象には入りません。各拡張機能のドキュメントを確認し、そのテレメトリ報告体制や無効化可否について学習してください。
本ページでは GitHub CLI(gh)におけるクライアントサイドでのデータ収集について述べています。これは、GitHub Copilot や Copilot CLI とは適用されません。後者については別途データ収集が行われており、「Using GitHub Copilot CLI」または「Responsible Use of the GitHub Copilot CLI」を参照してください。