Antigravity CLI のセッション履歴の保存場所
Antigravity CLI(agy)は ~/.gemini/antigravity-cli/brain/<会話 uuid>/.system_generated/logs/ に step 記録を保存します。transcript.jsonl と transcript_full.jsonl を比較してください。どちらも完全とは限りません:
~/.gemini/antigravity-cli/brain/<会話 uuid>/.system_generated/logs/transcript.jsonl全体の構成:
~/.gemini/antigravity-cli/
├── brain/<会話 uuid>/
│ ├── .system_generated/logs/
│ │ ├── transcript.jsonl ← ローリングウィンドウ
│ │ └── transcript_full.jsonl ← 名目上は完全版
│ ├── chunks/
│ ├── scratch/
│ └── media__<タイムスタンプ>.<拡張子> ← 添付ファイル
└── history.jsonl ← インデックス会話が属するプロジェクト
パスには手がかりがありません。答えはルートのインデックスにあります:
jq -r '[.timestamp, .workspace, .display] | @tsv' \
~/.gemini/antigravity-cli/history.jsonl | sort -r | head各行は {display, timestamp, workspace, conversationId} です。workspace がプロジェクトディレクトリ、conversationId が brain/ 配下のフォルダ名です。
どちらの transcript を読むか
どちらも完全であるとは限りません。transcript.jsonl はチェックポイントで圧縮されるローリングウィンドウで、transcript_full.jsonl も名前に反して同じくチェックポイントで切り詰められます。実用上のルールは、大きいほうを読むことです。
さらに transcript.jsonl は追記専用ではありません。圧縮時に CLI がファイル全体を書き直すため、これを監視するものはファイルが大きくなるケースだけでなく小さくなるケースも扱う必要があります。単調増加を前提にした tail は、ある時点から静かに更新を止めます。
step レコードの形式
{"step_index":12,"source":"USER_EXPLICIT","type":"USER_INPUT","status":"...",
"created_at":"...","content":"...","thinking":"...","tool_calls":[{"name":"...","args":{}}]}source は USER_EXPLICIT、MODEL、SYSTEM のいずれかです。
content を素のテキストとして扱うと問題になる点が 3 つあります:
- ユーザー入力は XML で包まれています。実際のメッセージは
<USER_REQUEST>…</USER_REQUEST>の中にあり、その後ろにメタデータブロックが続きます。 - ツール結果には 2 行の接頭辞が付きます。すべて
Created At: …\nCompleted At: …\nで始まり、その後に実際の出力が来ます。 - コード編集には diff が埋め込まれています。
CODE_ACTIONの step には[diff_block_start]マーカーと、それに続く unified diff が含まれます。
これらのレコードには token・usage・model のフィールドが一切ないため、このエージェントについてはコストとトークンの集計ができません。
Antigravity CLI の会話をターミナルから読む
step のソースと種別を出力:
jq -r '[.step_index, .source, .type] | @tsv' \
~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript.jsonl自分が入力した内容だけを、XML の殻を外して取り出す:
jq -r 'select(.type=="USER_INPUT") | .content | strings
| select(contains("<USER_REQUEST>") and contains("</USER_REQUEST>"))
| split("<USER_REQUEST>")[1] | split("</USER_REQUEST>")[0]' \
~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript.jsonl会話を再開するには
対応する CLI をインストールし、ワークスペースで agy --conversation CONVERSATION_ID を実行します。アプリはターミナルでの再開に対応し、Antigravity の内蔵チャットには対応していません。
根拠と制限
**対象範囲:**2026-10-05 に Sessions Viewer 0.6.0 のアダプター実装と照合しました。すべての CLI バージョンでの動作を保証するものではありません。シェル例は macOS/Linux のパスを使い、
jq(opencode はsqlite3)が必要です。プレースホルダーと保存先は自分の環境に合わせてください。テキスト抽出はツール、画像、セッションツリーの現在の分岐を完全には再現しません。コマンドの回帰テストにはダウンロード可能な合成データを使い、個人の会話は読みません。能力と検証表で範囲を確認できます。履歴の閲覧と再開・編集の違いはプライバシーとデータの扱いを参照してください。
このページはアダプターが読む agy の形式を扱い、Antigravity という名前のすべての製品を対象にはしません。大きいファイルでも、両方から失われた記録は復元できません。確認手順を参照してください。
アプリで開く
Sessions Viewer は 2 つの transcript のうち大きいほうを選び、XML の殻とタイムスタンプの接頭辞を取り除き、CODE_ACTION の diff を本物の diff として描画し、ファイルが足元で書き換えられても壊れません。Claude Code、Codex、Grok Build、Kimi Code、Pi、opencode にも対応しています。
