本文へスキップ
郭立 (leeguoo)

Claude Code と Codex をどう一緒に使う?互いに起こし合い、メッセージを送り合い、PC をまたげるツールを書いた

同じ PC 上で Claude Code、Codex、Pi を開いていても、それらは互いを見られない。ocs はすべての AI コーディングセッションに共有チャンネルを用意し、対象セッションを実際に起こす。0.6 からは LAN 内の別 PC も呼び出せる。この記事では使い方と、作る中で踏んだ「成功に見えるが実は失われている」落とし穴を紹介する。

このページの目次

私は日常にちじょう、AI コーディングセッションをいくつも同時どうじに開ひらいています。Claude Code が機能きのうを書き、Codex が review をし、Pi が雑用ざつようをこなす。それぞれはかなり有能ゆうのうなのですが、問題もんだいは互いが見えていないことです。Codex に Claude がさっき書いた diff を見てもらいたいだけなのに、私がコピーし、画面がめんを切きり替かえ、ペーストし、さらに返答へんとうを戻もどすしかない——人間が 2 つの AI のあいだのクリップボードになっていました。

Claude Code と Codex には、実はどちらも標準ひょうじゅんのクロスセッション機能きのうがあります。ただし、それぞれの製品せいひんの内部ないぶでしか有効ゆうこうではなく、製品せいひんの境界きょうかいで止まってしまいます。そこで私は ocs(Open Cross-session) を書きました。単一ファイルのバイナリで、Claude Code、Codex、Pi、そしてターミナル内の agent が互いにメッセージを送り、互いに起こし合えるようにします。サーバーもアカウントも不要で、データはすべて手元てもとの ~/.ocs にあります。

使うとどんな感じか

インストールしたあと、どれか 1 つのセッションに「この部分ぶぶんを見てくれる agent を探して」と言うだけで、自分で仲間なかまを探しに行きます。手動しゅどうでもとても簡単かんたんです。

bash
ocs who                                   # このマシンで生きているセッション一覧
ocs dm codex-01a06a98 "この diff をレビューして"   # Codex に送り、起こす
ocs rename reviewer                       # 現在のセッションに覚えやすい名前を付ける
ocs send dev "進捗どう?@reviewer"          # 複数人チャンネル。@ した相手を起こす

相手が受け取るのは「ファイルに 1 行増えた」というものではなく、セッション内に直接ちょくせつメッセージが現れます。末尾まつびには、そのまま使える返信へんしんコマンドも付きます。

[ocs wake] claude-7043ea85 が #dm-… であなたにメンションしました(seq 7)

この diff をレビューして

返信:ocs dm claude-7043ea85 "<your reply>"
スレッド:ocs read dm-…

相手がそのとおりに返信へんしんすると、こちらのセッションも起こされます。2 つの agent はこうして往復おうふくで会話し、あなたは横で ocs watch していれば十分です。

0.6:PC をまたぐ

最新さいしんの 0.6 では、これを LAN に広ひろげました。私の家いえには Mac と Windows が 1 台ずつあります。いまでは Mac 上の Claude が、「Windows でビルドを走らせて」という作業さぎょうを Windows 上の Claude や Codex に直接ちょくせつ渡せます。

bash
# マシン A                          # マシン B
ocs lan up                       ocs lan up
ocs lan pair   # ペアリングコードを表示  →   ocs lan pair 7K2M-9QXD-…
                                 ocs dm claude-1a2b3c4d@mini "Windows でビルドを走らせて"

知らないマシンがあなたの AI セッションにメッセージを差し込めるようにするなら、安全性あんぜんせいは最初に考える必要があります。なので、この部分ぶぶんは「LAN 内に悪意ある人がいる」ことを前提ぜんていに設計せっけいしています。

  • 身元みもとは公開鍵だけを信じる:各マシンに Ed25519 鍵を 1 つ。IP、マシン名、相手が自分で名乗る名前は、すべてヒントとしてしか扱いません。
  • ペアリングは一度だけ。「初回接続を信頼」はしない:ペアリングコードには、発行側の公開鍵フィンガープリントの接頭辞が入っています。接続後、まず相手の公開鍵を照合し、通った場合だけ自分の身元とリクエストを送ります。
  • 双方向認証、全区間暗号化:署名付き X25519 ハンドシェイク + AES-256-GCM で、前方秘匿性があります。
  • 未ペアリングのマシンは何もできない:有効なペアリングコードを引き換える以外、すべてのリクエストを拒否します。フレームサイズも 1 KiB に制限し、ペアリングコードは 5 回間違えると無効になります。
  • デフォルトではオフ:ocs lan up して初めて有効になります。リモートから届いたメッセージは、ローカルでは必ず 名前@あなたが付けたラベル として表示され、相手はこれを変更できません。

踏んだ落とし穴:「成功」は届いたことを意味しない

メッセージシステムを作るうえで一番危険きけんなのは、エラーではありません。成功に見えるのに、実は失われていることです。ocs のいくつもの鉄則は、そこから生まれました。

1. Claude が ok を返しても、メッセージが会話に入ったとは限らない。 Claude Code セッションにメッセージを注入すると、socket の向こう側は ok:true を返します。しかし Claude の crossSessionInbound はデフォルトで hold です。メッセージは審査待ちキューに入り、5 分間だれも処理しないと静かに破棄されます。そのため ocs は、この ok を「配信済み」として扱いません。ocs doctor がこの項目をチェックし、accept に変更するよう案内します。

2. codex queue は保存であって、配信ではない。 ターミナル内の Codex には、公式の codex queue を使ってメッセージを入れるしかありません。ただしこれは、メッセージを thread ストレージに書き込むだけです。対象セッションがすでに終了していても、同じように成功を返します。ocs のやり方は、送る前にセッションがまだ生きていることを証明することです。lsof で、その rollout ファイルを保持しているプロセスを探します。後になって、インデックス系のサードパーティープロセスもこれらのファイルを保持することがあるとわかりました。そこでさらに身元確認を追加しました。保持者自身、またはその祖先プロセスが本当に codex でなければ、オンラインとは見なさず、メッセージは相手がオンラインになるまで inbox に残します。

3. 結果が不明なら、絶対に再送しない。 ChatGPT Desktop との通信は、その private IPC を通ります。フレームはすでに書き出されたが、応答を待つ前に止まった場合、メッセージは届いたかもしれないし、届いていないかもしれません。このとき再送すると、最悪の場合、相手は同じ指示を 2 回受け取り、作業も 2 回行います。ocs は「結果不明」を一級の状態として個別に報告し(終了コード 3)、決して自動リトライしません。人間または上位レイヤーが判断できるようにします。

4. シーケンス番号の真の情報源は 1 つだけ。 各メッセージには単調増加する seq があります。初期バージョンでは「現在の seq」を別ファイルにも保存していました。その結果、「ログの書き込みは終わったが、seq ファイルはまだ更新されていない」タイミングでクラッシュすると、再起動後に重複 seq が発行されました。読み取り側は seq で重複排除するため、後から来たメッセージが永久に隠されてしまいました。現在の seq はログそのものからだけ推定します(ロックを取ってログ末尾を読む)。この問題は回帰テストで固定されています。

これらの落とし穴は、1 つずつ見れば難しくありません。難しいのは、通常のテストではどれも全部グリーンになることです。

インストール

bash
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/leeguooooo/open-cross-session/main/install.sh | sh
powershell
# Windows(PowerShell)
irm https://raw.githubusercontent.com/leeguooooo/open-cross-session/main/install.ps1 | iex

インストーラーは、Claude Code、Codex、Pi に ocs の skill もあわせて入れます。インストール後は ocs doctor --fix を一度実行して診断しんだんします。macOS、Linux、Windows に対応し、MIT オープンソースです。

もしあなたの利用りようシーンが 1 つの LAN を超える場合——異なるネットワーク、チーム共同作業、組織をまたぐ利用など——同じ使い方を Agent Party に移せます。ホスティングにも、private deployment にも対応しています。

問題もんだいやアイデアがあれば、GitHub で issue を立てるか、下にコメントしてください。


作者さくしゃ:郭立(leeguoo)。フルスタックエンジニアで、最近は AI agent が本当に仕事をこなせるようにするツール群を作っています。chrome-use、iphone-use、mail-use など。

同じカテゴリの記事 · AI & Agent

2026年3月18日
34分で読めます
補助的なコーディングから Agentic Coding へ:チームは AI プログラミングをどう本当に活用するのか
Agentic Coding をめぐる中核的な問いを軸に、主流ツールの形態、Skill と MCP の境界、AGENTS.md と CLAUDE.md の役割と仕組み、サンドボックスと権限制御、そしてデモを見るだけではなく実際のタスクとベンチマークで AI プログラミングを評価する方法を体系的に整理する。
→
2026年3月9日
10分で読めます
OpenClaw v2026.3.8 リリース解説:バックアップ、リモートゲートウェイ、Talk モードとマルチプラットフォームルーティングを引き続き強化
公式の release notes をもとに、OpenClaw v2026.3.8 の主な変更点を整理します。バックアップコマンドの正式導入、macOS のリモートゲートウェイ onboarding、Talk の silence timeout、Brave 検索対応、ACP receipts、そしてマルチプラットフォームのルーティング修正が中心です。
→
2026年10月10日
5分で読めます
Claude Opus 5.5にコードを書かせて3Dプロモーション映像を作る:1250行のコード、手作業のアニメーションは1フレームもなし
1つの要件から、Opus 5.5はClaude Code上で演出稿、three.jsのシーン、音楽シンセサイザー、字幕を書き、自分でフレームを抽出して確認しバグを修正し、さらにオープンソースのmotion-useを使ってローカルで102秒、6120フレームの完成映像をレンダリングした。
→
← 前の記事
Claude Opus 5.5にコードを書かせて3Dプロモーション映像を作る:1250行のコード、手作業のアニメーションは1フレームもなし
次の記事 →
Pastyx:Macでコピーしたものを、ショートカット一つですべて取り戻す

コメント

コメントは即時公開されますが、ポリシー違反時は非表示になる場合があります。

最大 1000 文字。