# テレメトリおよびプライバシー分析

> Claude Code v2.1.88 デコンパイルソースコード分析に基づく。

## 概要

Claude Codeは二層の分析パイプラインを実装し、広範な環境情報と使用メタデータを収集している。キーロギングやソースコード流出の証拠はないが、収集範囲の広さと完全な無効化が不可能な点にプライバシー上の懸念がある。

## データパイプライン構成

### ファーストパーティロギング（1P）

- **エンドポイント**: `https://api.anthropic.com/api/event_logging/batch`
- **プロトコル**: OpenTelemetry + Protocol Buffers
- **バッチサイズ**: 最大200イベント、10秒間隔で送信
- **リトライ**: 二次バックオフ、最大8回、ディスク永続化
- **ストレージ**: 送信失敗時 `~/.claude/telemetry/` に保存

出典: `src/services/analytics/firstPartyEventLoggingExporter.ts`

### サードパーティロギング（Datadog）

- **エンドポイント**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs`
- **対象**: 事前承認済みの64種類のイベントに限定
- **トークン**: `pubbbf48e6d78dae54bceaa4acf463299bf`

出典: `src/services/analytics/datadog.ts`

## 収集項目

### 環境フィンガープリント

すべてのイベントに以下のメタデータが含まれる（`src/services/analytics/metadata.ts:417-452`）:

```
- platform, platformRaw, arch, nodeVersion
- ターミナル種別
- インストール済みパッケージマネージャとランタイム
- CI/CD検出、GitHub Actionsメタデータ
- WSLバージョン、Linuxディストリビューション、カーネルバージョン
- VCS（バージョン管理システム）種別
- Claude Codeバージョンとビルド日時
- デプロイ環境
```

### プロセスメトリクス（`metadata.ts:457-467`）

```
- uptime, rss, heapTotal, heapUsed
- CPU使用量と使用率
- memory arraysとexternal allocations
```

### ユーザー追跡（`metadata.ts:472-496`）

```
- 使用中のモデル
- セッションID、ユーザーID、デバイスID
- アカウントUUID、組織UUID
- サブスクリプション等級（max, pro, enterprise, team）
- リポジトリリモートURLハッシュ（SHA256、先頭16文字）
- エージェント種別、チーム名、親セッションID
```

### ツール入力ロギング

ツール入力はデフォルトで切り詰められる:

```
- 文字列: 512文字で切り詰め、128文字+省略記号で表示
- JSON: 4,096文字制限
- 配列: 最大20要素
- ネストオブジェクト: 最大2階層
```

出典: `metadata.ts:236-241`

ただし、`OTEL_LOG_TOOL_DETAILS=1` 設定時は**ツール入力がすべて記録される**。

出典: `metadata.ts:86-88`

### ファイル拡張子追跡

`rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 関連のBashコマンドで、ファイル引数の拡張子が抽出・記録される。

出典: `metadata.ts:340-412`

## 無効化の問題

ファーストパーティロギングパイプラインは、直接Anthropic APIユーザーの場合**無効化できない**。

```typescript
// src/services/analytics/firstPartyEventLogger.ts:141-144
export function is1PEventLoggingEnabled(): boolean {
  return !isAnalyticsDisabled()
}
```

`isAnalyticsDisabled()` がtrueを返すケース:
- テスト環境
- サードパーティクラウドプロバイダ（Bedrock, Vertex）
- グローバルテレメトリ無効化（設定UIに非公開）

ファーストパーティイベントロギングを無効化する**ユーザー向け設定は存在しない**。

## GrowthBook A/Bテスト

ユーザーは明示的な同意なくGrowthBookを通じて実験グループに割り当てられる。送信されるユーザー属性:

```
- id, sessionId, deviceID
- platform, organizationUUID, subscriptionType
```

出典: `src/services/analytics/growthbook.ts`

## 要点

1. **収集量**: セッションあたり数百件のイベントが収集される
2. **無効化不可**: 直接APIユーザーはファーストパーティロギングを停止できない
3. **永続性**: 送信失敗イベントはディスクに保存され積極的にリトライされる
4. **サードパーティ共有**: データがDatadogに送信される
5. **ツール詳細バックドア**: `OTEL_LOG_TOOL_DETAILS=1` で全入力ロギングが有効化される
6. **リポジトリフィンガープリント**: リポジトリURLがハッシュ化されサーバー側の相関分析に使用される
