ずっと、なんとなくそう思っていました。
「APIコールがAnthropicのクラウドを経由しているのはわかっている。ただ、ターミナルから claude コマンドで動かしているとき、そのセッションのやりとりがログとしてサーバー側に保持されているとは思っていなかった」と。
処理はクラウド、でもログはローカルだけ。そんな認識でした。
調べてみたら、その認識は間違いでした。
CLIのセッションログもサーバー側に保持される
Claude CodeのCLIは、プロンプトを送るたびにAnthropicのクラウドにリクエストを飛ばしています。そしてその「ユーザーのプロンプトとモデルの出力」は、Anthropicの公式ドキュメントに明記されている通り、サーバー側に保持されます。
"Claude Code sends data over the network. This data includes all user prompts and model outputs."
CLIかデスクトップアプリかで区別はありません。適用されるのはプランと設定です。
ローカルにキャッシュが残るのは、セッション再開を便利にするためのものです。「ローカルにも残る」のであって、「ローカルにしか残らない」ではない。
# セッションの一覧(メタデータ)はここに保存される
~/.claude/history.jsonl
# 実際の会話トランスクリプトはこちら
~/.claude/projects/<project>/
では、サーバー側にどれくらい残るのか
プランによって保持期間が変わります。
コンシューマープラン(Free / Pro / Max)の場合:
- モデル改善への利用を許可している → 最大5年間保持
- 許可していない → バックエンドに最大30日間保持、その後削除
- 手動で会話を削除 → 履歴からは即座に消え、バックエンドからは30日以内に削除
商用プラン(Team / Enterprise / APIキー)の場合:
- 標準 → 30日間保持
- APIキー経由でZero Data Retention(ZDR)設定済み → サーバーにチャットトランスクリプトを保持しない
- Enterprise向けのZDRはデスクトップアプリやWeb版では対象外
プライバシー設定は claude.ai/settings/data-privacy-controls から変更できます。
思っていたより細かく制御できる。ただ、デフォルトがどうなっているかは一度確認しておく価値があります。
セッション履歴はターミナルからも見られる
「過去のセッションを確認したい」と思ったとき、最初はどこを見ればいいかわかりませんでした。デスクトップアプリには一覧が出るのに、ターミナルだと何もない。
でも、ちゃんと方法があります。
# 過去のセッション一覧をインタラクティブに表示 → 選択して再開
claude --resume
# 直近のセッションをそのまま再開
claude --continue
# または
claude -c
# セッションIDを指定して再開
claude --resume <session-id>
# セッション中に過去のプロンプトをインクリメンタル検索
Ctrl+R
# 現在のセッションをファイルにエクスポート
/export [filename]
claude --resume を叩くのが一番手っ取り早いです。ピッカーが出てきて、過去のセッションを選択できます。
4つの環境がバラバラに管理されている
ここが一番「そういう設計なのか」と思った部分です。
| 環境 | セッション履歴の保存先 | 他環境との同期 |
|---|---|---|
| CLI(ターミナル) | ローカル (~/.claude/) |
なし |
| デスクトップアプリのCodeタブ | ローカル(アプリ独自パス) | なし |
| Cowork | ローカル | なし |
| Web (claude.ai) | クラウド | なし |
全部バラバラです。CLIで積み上げたセッション履歴は、デスクトップアプリからは見えない。デスクトップアプリのCodeタブで作ったセッションは、ブラウザには出てこない。
デスクトップアプリのCodeタブのセッションは、CLIの ~/.claude/ とは別の場所に保存されています。
macOS: ~/Library/Application Support/Claude/claude-code-sessions/<accountId>/<orgId>/
Windows: %AppData%\Claude\claude-code-sessions\<accountId>\<orgId>\
実際にGitHub issueでも、「CLIで96セッション持っているのにデスクトップアプリのLocalフィルターではデスクトップで作った1セッションしか表示されない」という報告が上がっています。さらに最近のアップデートでセッション保存ディレクトリの名称が変更された際、移行処理が不完全で再起動後にサイドバーからセッションが見えなくなるケースも報告されています(データ自体はディスクに残っていますが、アプリから参照できなくなる)。
デスクトップアプリとCLIの速度差について
最初の疑問はここでした。デスクトップアプリはCLIより遅いのか、と。
定量的なベンチマークは公式にも出ていません。ただ、わかっていることとしては:
- APIコール自体は同一。モデル側のレスポンス速度に差はない
- 差が出るのはクライアント側のオーバーヘッド(UIレンダリング、ビジュアルdiff表示など)
- 長時間セッションではコンテキスト蓄積やメモリリークの報告もあり、セッションが長くなるほど差が開く傾向がある
速度を最優先にするならCLI、ビジュアルフィードバックやセッション管理の手軽さを取るならデスクトップアプリ。どちらかが絶対的に優れているというより、用途で選ぶ話です。
今のところの判断
自分の現在の使い方:
- 長いコーディングセッション → CLIで作業して、
~/.claude/配下のログを定期的に確認 - ちょっとした確認・試作 → デスクトップアプリのCodeタブ
- ファイル操作を伴う自動化 → Cowork
セッション履歴が分散しているのは正直不便ですが、逆に言えば「どの環境で作業したか」を意識しながら使えばそれほど困らない。問題になるのは、環境を意識せずに使い始めたとき。
「CLIならログはローカルだけ」という思い込みは今回きれいに消えました。プライバシー設定は一度見直しておくことをお勧めします。
まだわからないこと・次に確認したいこと
- CLIとWebの双方向リアルタイム同期は現時点では未実装。GitHubでフィーチャーリクエストが上がっているが、いつ対応されるかは不明
- デスクトップアプリのセッション保存ディレクトリ変更に伴うバグの影響範囲(v1.1.4498以降で発生)
- サードパーティのセッションビューアツール(
claude-sessions-explorer等)の実用性検証は次回
関連書籍
Claude Codeをより深く使いこなしたい方には、以下の書籍が参考になります。
[📦 商品リンク: moshimo-book-9CeFY]
[📦 商品リンク: moshimo-book-fINTJ]