この記事でやること
- osFoundryのデスクトップアプリの「外部エージェント」画面で、Claude Codeの過去のセッションを狙って探す
- 目当てのセッションが一覧で見当たらないときに、手元のファイルをターミナルで確かめる
- 「ターミナルで開く」の前後で、フォルダ・ブランチ・承認モードがどう扱われるかを確認する
- Codexのセッションでも同じ確認ができるようにしておく
前提・環境
- macOSのosFoundryデスクトップアプリ(外部エージェントはローカルのファイルを読む画面なので、デスクトップアプリ専用です)
- Claude Codeを使ったことがあり、
~/.claude/projects/にセッションが残っている - Codexも使うなら
~/.codex/がある
この記事で叩くのは、ls や git での読み取りだけです。セッションファイルを書き換えるコマンドはありません。
確認1 検索語はメタデータに当てる
サイドバーのメイン → 外部エージェント(ルートは /external-agents)を開き、「タイトル、フォルダ、ブランチを検索」に言葉を入れます。当たるのは次の5つです。
| 対象 | 例 |
|---|---|
| タイトル | 決済のリトライで二重請求される問題を修正 |
| フォルダのパス | ~/code/shop-api |
| gitブランチ | fix/checkout-retry |
| アプリ名 | Claude Code |
| セッションID | c5e1a7b2-… |
メッセージ本文は検索しません。「Claudeが返事で何と言っていたか」ではなく、リポジトリ名やブランチ名で探すのがコツです。ブランチ名の一部(checkout など)だけでも当たります。
一覧上部のチップでアプリを絞れます。Claude Codeのチップを押すと、Claude Codeのセッションだけになります。
確認2 アプリがオフになっていないか
チップにClaude Code自体が出ていない場合は、右上の「アプリ」メニューを開きます。ここでアプリを個別にオフにすると、その端末ではそのアプリのフォルダ自体を読まなくなります。以前オフにしたままになっていないか、まず確認します。
対応しているのはClaude Code、Claudeアプリ、Codex CLI、Codexアプリ、Gemini CLI、Qwen Code、OpenCode、Copilot CLI、Cursor、Devin、Antigravity、Kiroの12種類です。チップは、セッションがあるアプリだけが件数付きで出ます。
確認3 ファイルが手元にあるか
一覧はClaude Codeが書き出したファイルから作られています。なので、ファイルがあるかどうかはターミナルで確かめられます。
Claude Codeは、作業したフォルダごとにディレクトリを作り、1セッションを1つのJSONLファイルにします。ディレクトリ名は、絶対パスの英数字以外を - に置き換えたものです。
# 作業フォルダから、Claude Codeのセッション置き場を割り出す
dir=$(printf '%s' "$HOME/code/shop-api" | sed 's/[^A-Za-z0-9]/-/g')
ls -lt ~/.claude/projects/"$dir"/*.jsonl | head
出てきたファイル名(拡張子を除いた部分)が、そのままセッションIDです。外部エージェントの検索欄にIDの先頭数文字を入れれば、そのセッションに絞れます。
この変換は戻せません。たとえば my.app と my-app は同じディレクトリ名になります。ディレクトリ名からフォルダを推測するより、作業フォルダから上のように割り出すほうが確実です。
同じディレクトリの下に <セッションID>/subagents/agent-<id>.jsonl というファイルもあります。これはTaskツールなどが動かしたサブエージェントの記録です。人が再開するセッションではないので、外部エージェントの一覧には出てきません。
Codexの場合は、日付ごとのフォルダにrolloutファイルが入っています。アーカイブしたものは別の場所です。
ls -lt ~/.codex/sessions/*/*/*/rollout-*.jsonl | head
ls ~/.codex/archived_sessions/ 2>/dev/null
ls ~/.codex/state_*.sqlite
Codexは state_<n>.sqlite に一覧用のインデックスも持っています。複数ある場合、osFoundryは n が最大のものを読みます。
確認4 中身を開いて当たりかを確かめる
候補を開くと、右側に会話がまるごと出ます。ツール呼び出しは1回ずつの行になっています。全文を読むのは開いた1件だけで、一覧は各ファイルの先頭数行と末尾から作られています。サイズの大きいセッションも、一覧の段階で待たされずに済みます。
その上の「アプリから」パネルには、再開するときに各設定をどう扱うかが出ます。
| 設定 | 再開時の扱い |
|---|---|
| フォルダ | 引き継ぐ |
| ブランチ | 今のフォルダと照合する |
| モデル | 表示する(会話ログにあれば --model で渡す) |
| 承認モード | 表示する(下の確認6を参照) |
確認5 ブランチがずれていないか
「ターミナルで開く」を押す前に、作業フォルダのブランチを自分でも見ておくと安心です。osFoundryがやっているのと同じ確認です。
git -C ~/code/shop-api rev-parse --abbrev-ref HEAD
記録上のブランチと違っていれば、osFoundryも確認ダイアログを出します。
このセッションは fix/checkout-retry 上でしたが、フォルダは現在 main にあります。
main で再開します。ブランチは切り替わりません。
osFoundryはブランチを照合して知らせるだけで、checkoutは叩きません。元のブランチで続けたいなら、ここでキャンセルし、自分で切り替えてから押し直します。
git -C ~/code/shop-api switch fix/checkout-retry
確認6 承認モードがどう渡るか
記録された承認モードは、CLIの既定と同じかそれより厳しいときだけ、そのまま引き継がれます。
| CLI | そのまま引き継ぐもの | それ以外 |
|---|---|---|
| Claude Code |
default、plan
|
その起動でチェックを入れたときだけ --permission-mode で渡す |
| Codex | 承認 untrusted・on-request、サンドボックス read-only・workspace-write
|
同上(-a・-s) |
緩いモードで動いていたセッションでも、チェックを入れなければCLIの既定で開き直します。再開したあとのツール実行はすべてCLI自身が行い、承認もCLIが聞きます。
確認7 起動されたコマンドを見る
「ターミナルで開く」を押すと、セッションのフォルダでターミナルペインが開き、記録から組み立てたコマンドが走ります。以下は表示例です。
~/code/shop-api (main) $ claude --resume c5e1a7b2-9d40-4f3e-8b16-2a7c0e9d4f58
Codexのセッションなら、同じボタンで codex resume <id> が走ります。モデルは -m、承認とサンドボックスは -a・-s で、確認6と同じルールで付きます。
CLIではなくosFoundryのチャットで続けたいときは、隣の「ここで続ける」を使います。
よくある疑問
セッションのフォルダを消してしまった場合は
osFoundryは、記録されたフォルダがもう無いときに、別の場所で開くことはしません。同じ場所にフォルダを戻してから開き直します。
osFoundryにClaude Codeのログインを渡す必要はありますか
ありません。アカウント連携の手順もありません。osFoundryはセッションファイルとSQLiteのインデックスを読み取り専用で開くだけで、サインイン用のファイルには触れません。読むのはこの端末の中だけで、ネットワークには出ません。
Claudeアプリのアーティファクトやコネクタも引き継がれますか
アプリの画面にしかないものは、そのアプリに残ります。Codexアプリのブラウザパネルやレビュー画面、Claudeアプリのコネクタやアーティファクト、Cursorのエディタは、セッションの横に名前が出るだけで、ターミナルには持ち込まれません。
osFoundry自身のエージェントのセッションもここに出ますか
外部エージェント画面に並ぶのは、ほかのアプリが書き出したセッションです。osFoundry自身のエージェントは、osFoundryのセッションボードで作業中・返事待ち・完了に分かれて見えます。デスクトップアプリがまだなら、osFoundryのダウンロードページから入手できます。
まとめ
- 検索はタイトル・フォルダ・ブランチ・アプリ名・IDに当たるので、リポジトリ名かブランチ名で探します
- 一覧に出ないときは、「アプリ」メニューのオン・オフと
~/.claude/projects/のファイルを確かめます - ブランチは照合して知らせるだけなので、元のブランチで続けるなら自分で
git switchします - 緩い承認モードは、その起動でチェックを入れたときだけ渡ります