Claude向けVSCode拡張 Terminal Session Recall を公開した

Terminal Session Recall は、VSCode の統合ターミナル上で動いている Claude Code CLI のセッションを自動復元する拡張機能。VSCode を再起動するとターミナルのプロセスが死ぬ。複数セッションを並行して使っていると、毎回 --resume し直すのが面倒だった。この拡張はセッションの状態を追跡し、起動時に自動で復元する。

操作の起点

VSCode のどこから操作するか。設計時に6箇所の候補を検討して、最終的に ステータスバー を選んだ。

クリックすると Quick Pick メニューが開き、セッションの一覧・新規作成・再開ができる。ターミナルのすぐ下にあるので視線の移動が小さい。

UX

ステータスバー兼メニューボタン

ステータスバーの右側に、現在のプロジェクトの Claude セッション数が表示される。

$(terminal) Claude: 2 live · 1 idle

クリックすると Quick Pick メニューが開く。

Quick Pick メニュー

セッションは Active / Resumable / Completed の3欄に分類される。各セッションには最初のプロンプト、ファイルサイズ、経過時間が表示される。

セッションに /rename で名前をつけておくと、一覧から探しやすくなる。

自動復元

VSCode が再起動すると、前回 active だったセッションを自動で復元する。朝 VSCode を開くだけで、昨日の続きから作業できる。

sequenceDiagram participant U as ユーザー participant V as VSCode participant E as 拡張 participant C as Claude CLI U->>V: VSCode を開く V->>E: activate() E->>E: globalState から active セッションを取得 loop 各 active セッション E->>V: ターミナル作成 E->>C: claude --resume session-id C-->>V: 前回の会話の続き end E->>V: ステータスバー更新

復元対象は直近 24 時間以内のセッションに限定される(設定で変更可能)。

仕組み

セッションの追跡

拡張が新しいセッションを作るとき、UUID を生成して claude --session-id <uuid> で CLI を起動する。UUID は CLI 起動前に VSCode の globalState に保存する。この順序により、ターミナル作成中に VSCode がクラッシュしてもセッション ID は失われない。

flowchart LR A["UUID 生成"] --> B["globalState に保存"] B --> C["ターミナル作成"] C --> D["claude --session-id uuid"]

セッションの発見

拡張を経由せずターミナルで直接 claude を実行したセッションも、Quick Pick に表示される。~/.claude/history.jsonl を読み取り専用で参照し、現在のワークスペースに対応するセッションを自動で発見する。

状態遷移

stateDiagram-v2 [*] --> Active: New Session または Resume Active --> Inactive: ターミナルを閉じた Active --> Completed: CLI が正常終了(/exit など) Inactive --> Active: Quick Pick で再開 Completed --> Active: Quick Pick で再開
状態自動復元Quick Pick
ActiveするActive 欄
InactiveしないResumable 欄
CompletedしないCompleted 欄

データアクセス

この拡張は ~/.claude/読み取り専用 でアクセスする。書き込み、削除、認証情報の参照は行わない。

flowchart TB subgraph read["読み取り対象"] H["history.jsonl セッション履歴"] P["projects/slug/ ディレクトリ一覧"] S["*.jsonl ファイルサイズ(stat のみ)"] end subgraph noaccess["アクセスしない"] A["認証トークン"] K["API キー"] C["会話内容"] end E["拡張"] -->|"read-only"| read E -.-x|"x"| noaccess

しばらくドッグフーディングしてきたが、そろそろよさそうなので v1.0.0 として公開した。

インストール

VS Code Marketplace からインストールできる。

Terminal Session Recall — VS Marketplace

前提: Claude Code CLI がインストール済みで PATH に通っていること。

設定

設定デフォルト説明
autoRestoretrueVSCode 起動時に中断セッションを自動復元
autoRestoreMaxAge24自動復元の対象とする最大経過時間(時間)
claudePath"claude"Claude CLI のパス

制限事項

リンク

追記(v1.0.4)

v1.0.0 公開後、主にセッションのライフサイクル管理を改善した。