Skip to content

プロジェクト管理

Chronicle が、あらゆる AI ツールのセッションをどのように論理的なプロジェクトへとまとめ、適切なコードフォルダに紐づけ続け、同期・リネーム・関連付け・移動を可能にするかを解説します。

Chronicle における プロジェクト とは、ツール固有のサイロではなく、物理的なコードフォルダを指します。Claude Code、Codex、Cursor、OpenCode、Gemini CLI、Copilot Chat のセッションは、同じディレクトリで実行されている限り、すべて同一のプロジェクトの下に集約されます。そのため、1 枚のプロジェクトカードには、どのツールで触れたものであっても、あるコードベースの全履歴が表示されます。このページでは、その集約の仕組み、プロジェクトごとの操作、そして自分の作業位置を見失わずにプロジェクトやセッション間を移動する方法を説明します。

論理プロジェクトと自動集約

各パーサーは、セッションが実行された物理的な作業ディレクトリ(cwd)を記録します。インポート時に、Chronicle はそのパスをキーにしてセッションをプロジェクトへ紐づけます。したがって、同じリポジトリで Claude Code と Cursor を使っていれば、手動でリンクしなくても両者は自動的に同じカードにまとまります。カードにはこれが反映されます。セッションを提供した各ツールごとの ソースピル✳ claude-code⬡ codex▮ cursor✦ gemini-cli、…)に加えて、セッション数・メッセージ数、そして最終アクティブのタイムスタンプが表示されます。

最新の cwd が優先される(リポジトリの移動)

リポジトリを移動またはリネームした後に再開したセッションは、初期のログレコードに 古い パスを保持しています。Chronicle は、認識した 最後の cwd(リポジトリとその Git 履歴が現在存在する場所)を使ってセッションをプロジェクトへ解決し、サブディレクトリの cwd は認識済みの祖先ディレクトリまで畳み込みます。これを低コストで捉えるため、スキャナは各ログファイルの先頭と末尾の 64 KB の両方を調べます。結果として、リポジトリを移動しても、その履歴が実体のないプロジェクトに散らばることはありません。

Git バッジ

プロジェクトフォルダが Git リポジトリである場合、カードには 現在のブランチとコミット数 を示すピル(⎇ main、ホバーで数を表示)が表示されます。これは本当にリアルタイムです。Chronicle は projects リクエストのたびにキャッシュなしで git を呼び出すため、常にワーキングツリーの現在の状態を反映します。マージしたつもりなのにピルにフィーチャーブランチが表示されている場合、正しいのはピルのほうで、チェックアウトがまだそのブランチのままです。Git リポジトリのないプロジェクトでは、代わりに 「No Git repo — time travel unavailable」 と表示されます。再生自体は動作しますが、再構築するためのコードスナップショットが存在しません。

カードごとの歯車メニュー

各プロジェクトカードの ⚙ メニューには、4 つのアクションがあります。

アクション動作
⟳ Sync Updateこのプロジェクトのソースを再スキャンし、新規または変更されたセッションを再インポートします。冪等です。セッションの再インポートは削除して再挿入する処理ですが、Chronicle でのリネームは保持されます。
ⓘ View Detailsプロジェクト分析ホーム(統計カード、トレンドチャート、ソースのドーナツグラフ、呼び出しランキング)を開きます。
✎ Renameプロジェクトの表示名を設定します。ディスク上のソースフォルダは変更 されません
🗑 Remove from Chronicleプロジェクトを Chronicle のデータベースから削除します。ソースログやプロジェクトフォルダが削除されることはありません。

実パスのないソースの関連付け

ほとんどのツールは実際の cwd を報告しますが、Gemini CLI は報告しません。そのセッションには仮想パス(gemini-project:<hash>)と 「Needs association」 バナーが付きます。実際のコードフォルダを指定して Associate をクリックすると、Chronicle はそのセッションを移動し、そのパスにすでに一致するプロジェクトが存在する場合は 一致するプロジェクトへマージ します。この方法で、任意のプロジェクトについて手動での関連付けが可能です。

ソースのリンク解除

集約の逆操作です。1 つのプロジェクトに複数のツールのセッションがある場合、プロジェクトヘッダーには各ソースに リンク解除チップ⛓✕ cursor)が表示されます。リンクを解除すると、そのソースのセッションが独立した別のプロジェクトへ切り出されます。2 つのツールがたまたま同じディレクトリを共有していたものの、別々に追跡したい場合に便利です。

ナビゲーション: パンくずスイッチャー

プロジェクトビューやセッションビューの内部では、上部のパンくずが 2 つのドロップダウン、すなわち プロジェクトピッカーセッションピッカー で構成されています。これらを使えば、プロジェクトグリッドまで戻らずに、別のプロジェクトや別のセッションへ その場で 移動できます。セッションビューはセッション ID をキーにしているため、切り替えるとクリーンに再マウントされ、パンくず・ピッカー・タイトルがすべて一緒に更新されます。

単一セッションの同期

セッションの内部からは、⇧⌘U(このセッションを Sync Update)でそのセッション 1 つだけを再インポートできます。セッションがまだ書き込み中で、最新のやり取りをデータベースに取り込みたいときに便利です。これはプロジェクト全体ではなく、現在のセッションのみを再インポートします。

セッションカードと実際のコンテキスト使用量

各セッションカードには、その表示名が表示されます。表示名は単一の優先順位ルールによって解決されます。Chronicle でのリネーム → 解析されたタイトル → 最初のプロンプト(src/ProjectDetail.jsxsessionDisplayName() を参照)の順です。あわせて、ソースピルとコンテキストインジケーターが表示されます。

  • ⧉ 42k ctx — セッション最後のメッセージ時点での実際のコンテキストウィンドウサイズ。ツール自身の使用量レコードから読み取られます。
  • ⧉ ~38k tokens — 実際の使用量が得られない場合に表示されるフォールバックの推定値(1 トークンあたり約 4 文字)。実際のコンテキストはインポート時にのみ設定されるため、アップグレード後にこれを埋めるには Sync Update または再インポート を実行してください。

時間範囲セレクター(Today / All time / 7 / 30 / 365 日)で、プロジェクトの統計やチャートの対象範囲を変更できます。

関連項目

  • セッションのインポート — インポートウィザード、対応する 6 つのツール、そして集約を支える読み取り専用の保証について。
  • セッションインサイト — セッションを開いたとき、各セッションカードの統計(アクティブ時間、コスト、コンテキストウィンドウバー)が何を意味するか。

Released under the MIT License.