はじめに
Claude CodeやCodexとの会話は、セッションを閉じるとそのまま流れていきます。「あのとき教えてもらったリファクタリング方針、なんだったっけ?」「先週のバグ調査でAIと議論した内容を確認したい」――こういった場面で、過去の会話を探せないのはもったいない。
社内であんちぽさんがClaude Codeの会話をObsidianへ自動保存する仕組みをZennで紹介していたので、これをベースにCodex CLI対応を追加しました。複数ツールの会話を一箇所へ集約できるようにしています。
何をしたか
あんちぽさんのスクリプトにOpenAI Codex CLIのサポートを追加しました。
対応したこと
- Codex CLIのセッション監視(
~/.codex/sessions/) - ログ出力パスを年別フォルダに変更(
logs/YYYY/YYYY-MM-DD.md) - どのツールでの会話かラベル付け(
Claude/Codex)
出力イメージ
## [14:30:15] Claude - my-project
> ユーザー: このAPIのエラーハンドリングを改善したい
> Claude: エラーハンドリングを改善する方法を...
## [15:45:22] Codex - another-project
> User: Add input validation
> Codex: I'll add validation...
おまけ:1日の終わりに自動要約
1日の終わりにその日のログをローカルLLM(ELYZA CLI)で要約して、Obsidianのデイリーノートへ追記する機能もあります。ローカルで動くので、会話ログを外部へ送信せずに要約できます。
claude-daily-summary
これで「今日はどんな作業をしたか」がサマリーとして残ります。振り返りにも便利です。
なぜ複数ツール対応が必要だったか
私自身、用途によってClaude CodeとCodexを使い分けています。Claude Codeは設計相談や複雑なリファクタリング、Codexは素早い実装や単純なタスクといった具合です。
ツールが違っても、「自分がAIと何を議論したか」は一箇所にまとまっていてほしい。今回の修正で、どのツールを使っても同じ形式でログが残るようになりました。
仕組み
- セッション監視: シェルスクリプトが5秒ごとにClaude CodeとCodexのセッションファイルの変更を検知
- データ抽出: jqコマンドでノイズ(システムメッセージ)を除外
- 自動保存: 日付ごとのMarkdownファイルに追記
- ラベル付け: どのツールでの会話かヘッダーに明記
LaunchAgentとして常駐させているので、普段は何も意識せずに勝手にログが溜まっていきます。
おわりに
AIとの会話は、単なる作業履歴ではなく「自分の思考過程の記録」です。自動で蓄積しておくと、後から振り返ったときに意外な発見があります。
元のスクリプトを公開してくれたあんちぽさんに感謝です。
関連記事
AIツールの活用に関する記事をほかにも書いています。

