
claude-mem v13.5以降のテレメトリとオプトアウト方法を整理する
どうも!オペ部の西村祐二です!
claude-mem は、Claude Codeなどの作業履歴を圧縮し、次回以降のセッションへ文脈として戻してくれるツールです。そのclaude-memで、v13.5.0から匿名利用テレメトリが追加されています。
公式ドキュメントでは、テレメトリはデフォルトで有効なオプトアウト方式と説明されています。一方で、送信される値は許可リスト方式で制限されており、プロンプト本文、ファイルパス、ソースコード、プロジェクト名、検索クエリ、エラーメッセージなどは送らない設計になっています。
この記事では、claude-mem v13.5以降のテレメトリで何が送られるのか、明示的にオプトアウトする場合はどの設定を使えばよいのかを整理します。ネットワーク上で実際に送信されたペイロードのキャプチャまでは扱わず、公式ドキュメント、CHANGELOG、実装から読み取れる範囲に絞ります。
先に結論
個人の開発環境で手早く止めたいだけなら、まずは次のコマンドで十分です。
npx claude-mem telemetry disable
dotfilesや組織管理の端末で明示的に管理したい場合は、環境変数で固定する方が追いやすそうです。複数のCLIツールも含めてまとめて意思表示したいなら、DO_NOT_TRACK を使います。
export DO_NOT_TRACK=1
claude-memだけを対象にするなら、専用の環境変数を使います。
export CLAUDE_MEM_TELEMETRY=0
現在どの設定レイヤーで有効・無効が決まっているかは、次のコマンドで確認できます。
npx claude-mem telemetry status
過去分の日次集計を送るhistorical backfillまで避けたい場合は、アップグレード後にworkerを起動する前に無効化しておくのが重要です。
使い分けの目安
| やりたいこと | 向いている方法 |
|---|---|
| claude-memだけを手元で無効化したい | npx claude-mem telemetry disable |
| shellやdotfilesでclaude-memだけ無効化したい | CLAUDE_MEM_TELEMETRY=0 |
| 他のCLIツールも含めてまとめて無効化したい | DO_NOT_TRACK=1 |
| 設定ファイルで明示的に管理したい | ~/.claude-mem/telemetry.json の enabled: false |
| 送信される可能性があるペイロードを確認したい | CLAUDE_MEM_TELEMETRY_DEBUG=1 |
優先順位は DO_NOT_TRACK、CLAUDE_MEM_TELEMETRY、telemetry.json、デフォルトの順です。DO_NOT_TRACK が設定されている場合は、それが最優先で無効化されます。
今回の前提
対象にするのは、claude-mem v13.5.0以降で導入された匿名テレメトリです。主に次の一次情報を確認しました。
- Telemetry docs
- Configuration docs
- CHANGELOG
- v13.5.0 Release
- v13.6.0 Release
- v13.6.1 Release
- telemetry command implementation
- telemetry consent implementation
実機でネットワーク送信をキャプチャして検証した記事ではありません。そのため、この記事での「送られる」「送られない」は、上記のドキュメントと実装上の説明に基づく整理です。
テレメトリで何が変わったか
v13.5.0で、claude-memに匿名利用テレメトリが追加されました。
CHANGELOGでは、最初のテレメトリ導入として install_completed、install_failed、uninstall_completed、worker_started、session_compressed、context_injected、search_performed、error_occurred の8種類のイベントが説明されています。
その後、v13.5.1からv13.6.1にかけて、送信される集計値が増えています。主に追加されたのは次のような情報です。
| バージョン | 主な追加内容 |
|---|---|
| v13.5.0 | 匿名テレメトリ、telemetry status/enable/disable コマンド |
| v13.5.1 | context injectionやsession compressionのトークン効率、モデル、providerなど |
| v13.5.2 | OS version、WSL判定、Node.js version、install methodなど |
| v13.5.3 | 実際のtoken数、provider-reported cost、DB件数などのinstall-state snapshot |
| v13.5.4 | PostHog側でIPから国・地域・都市レベルの粗い位置情報を導出する説明を追加 |
| v13.5.5 | 検索品質、圧縮出力の信頼性、worker lifecycle、hook failureの信号 |
| v13.6.0 | pre-telemetry期間の履歴を匿名日次rollupとしてbackfill |
| v13.6.1 | 履歴rollupへ推定generation-cost economicsをbackfill |
ポイントは、v13.5.0で終わりではなく、v13.5系からv13.6系にかけて「何が送られるか」の粒度が増えていることです。古い紹介記事だけを見て判断するより、現行のTelemetry docsまで確認した方が安全です。
何が送られるのか
公式ドキュメント上、イベントはランダムなinstall UUIDで識別されます。ユーザー名、メールアドレス、端末固有ID、プロジェクト名などから作られるIDではなく、初回利用時にローカルで生成されるUUIDです。
送信される情報は、大きく分けると次のカテゴリです。
| カテゴリ | 例 |
|---|---|
| 実行環境 | claude-mem version、OS、OS version、CPU architecture、runtime、Node.js version、WSL判定 |
| インストール状態 | install method、interactiveかどうか、bun/uv/Claude Code version、updateかどうか |
| worker状態 | worker start/stop、uptime、previous shutdown、process RSS、heap used |
| 圧縮処理 | provider、model、入力/出力token数、圧縮比、処理時間、provider-reported cost |
| context injection | 注入されたobservation/session件数、timeline depth、推定tokens injected、推定tokens saved |
| 検索 | 検索route、検索結果件数、検索strategy、Chroma利用可否、fallback reason |
| ローカルDBの規模 | observation/session/summary/projectの件数、DBサイズ、直近7日/30日のobservation件数 |
| 信頼性シグナル | fabrication検出の有無、invalid output分類、abort reason、hook failure分類 |
この表だけ見ると多く見えますが、公式ドキュメントでは「数値、真偽値、閉じた列挙値」に限定すると説明されています。たとえば search_performed では検索が実行されたことや結果件数は送られますが、検索クエリ本文は送られません。
送られないものとIPの扱い
公式ドキュメントで明示されている「送られないもの」は次の通りです。
| 送られないもの | 補足 |
|---|---|
| プロンプトや会話本文 | 切り詰めやhash化でも送らない説明 |
| ファイルパスやディレクトリ名 | cwd、transcript path、data directoryを含む |
| ソースコード | いかなる形でも送らない説明 |
| プロジェクト名やリポジトリ名 | git remoteやbranch名も含む |
| 検索クエリ | 検索実行の事実や件数のみ |
| エラーメッセージやstack trace | coarse categoryのみ |
| 環境変数の値 | 値そのものは送らない |
| メール、ユーザー名、PII | 個人識別情報は送らない説明 |
| hardware IDやmachine ID | hash化したMAC addressやhostnameも含まない説明 |
IPアドレスについては少し注意が必要です。クライアントはIPアドレスをイベントに付けないものの、PostHogのingestion時に送信元IPから国・地域・都市レベルの粗い位置情報を導出する、と説明されています。
raw IPは保存しないという説明ですが、「粗い位置情報も避けたい」というポリシーなら、テレメトリ自体を無効化するのが分かりやすいです。
historical backfillで気をつけること
v13.6.0以降では、テレメトリ導入前の履歴を匿名の日次rollupとして一度だけbackfillする仕組みが追加されています。
送られるのは、日ごとのobservation/session/summary/prompt数、observation typeの内訳、session outcome、platform別session数、subagent observation数、discovery token数などです。タイトル、プロンプト本文、ファイル内容、プロジェクト名は送らないと説明されています。
ここで大事なのは、backfillも通常のテレメトリと同じconsent gateに従うことです。アップグレード後の最初のworker startより前に DO_NOT_TRACK=1 や CLAUDE_MEM_TELEMETRY=0、または telemetry.json の enabled: false を設定しておけば、backfillも止まります。
逆に、一度オプトインした後や、明示的な無効化なしでworkerが起動した後は、backfillが走る可能性があります。過去分の集計送信まで避けたい場合は、アップデート直後ではなく、workerを起動する前に無効化を済ませるのが安全です。
オプトアウトする4つの方法
1. DO_NOT_TRACK=1
複数のCLIツールをまとめて止めたい場合は、DO_NOT_TRACK が一番分かりやすいです。
export DO_NOT_TRACK=1
公式ドキュメントと実装では、DO_NOT_TRACK は最優先で評価されます。空文字、0、false 以外の値が入っていると、telemetryは無効になります。
dotfilesで管理する場合は、shellのprofileや環境変数管理に入れておくと、claude-mem以外のツールにも同じ意思表示ができます。
2. CLAUDE_MEM_TELEMETRY=0
claude-memだけを対象にしたい場合は、専用の環境変数があります。
export CLAUDE_MEM_TELEMETRY=0
実装上は、0、false、off が無効化として扱われます。逆に 1、true、on は有効化です。ただし DO_NOT_TRACK が設定されている場合は、そちらが先に評価されるため、CLAUDE_MEM_TELEMETRY=1 で上書きすることはできません。
一時的に確認したいだけなら、コマンド単位で付けることもできます。
CLAUDE_MEM_TELEMETRY=0 npx claude-mem telemetry status
3. npx claude-mem telemetry disable
ユーザー単位で永続的に無効化したい場合は、公式に用意されているCLIが一番手軽です。
npx claude-mem telemetry disable
このコマンドは telemetry.json に enabled: false を保存します。設定ファイルの場所は、デフォルトでは次の通りです。
~/.claude-mem/telemetry.json
CLAUDE_MEM_DATA_DIR を変更している場合は、その配下の telemetry.json が使われます。
状態確認は次のコマンドです。
npx claude-mem telemetry status
このコマンドは、有効・無効だけでなく、どの設定レイヤーで判断されたかも表示する実装になっています。
4. telemetry.json を直接管理する
設定ファイルで管理する場合は、次のような形です。
{
"enabled": false,
"installId": "<random UUID>",
"decidedAt": "2026-06-15T00:00:00.000Z"
}
公式ドキュメントでは、enabled が存在しないファイルは「まだ明示判断がない」と扱われ、デフォルトの有効が適用されると説明されています。installId だけがある状態では無効化にはなりません。
設定ファイルを直接触る場合も、基本的には telemetry disable コマンドを使った方が間違いが少ないと思います。dotfilesで配布するなら、個人識別に使われるrandom install IDまで固定配布しないように注意が必要です。
送信前にペイロードを確認する方法
公式ドキュメントでは、debug modeも用意されています。
export CLAUDE_MEM_TELEMETRY_DEBUG=1
この状態では、telemetryが有効な場合でも、送信予定のイベントペイロードを標準エラーへ出力し、ネットワーク送信はしないと説明されています。
注意点として、これは「telemetryを無効化する設定」ではなく「送信予定ペイロードを確認するためのdebug mode」です。通常運用で止めたい場合は、DO_NOT_TRACK=1、CLAUDE_MEM_TELEMETRY=0、または telemetry disable を使う方が読みやすいです。
まとめ
claude-mem v13.5以降のテレメトリは、デフォルトで有効なオプトアウト方式です。送信対象は許可リスト方式で制限され、会話本文、ファイルパス、ソースコード、プロジェクト名、検索クエリなどは送らないと説明されています。
ただし、v13.5.1以降でtoken数、cost、DB件数、worker状態、検索品質などの集計値が増え、v13.6.0以降では過去分の日次rollupのbackfillも追加されています。プライバシーや組織ポリシー上、外部への利用統計送信を避けたい場合は、明示的にオプトアウトしておくのがよさそうです。
誰かの参考になれば幸いです。
参考リンク:







