chat-across
chat-across
English | 中文
あなたのAIコーディングエージェントを1つのチームとして同じプロジェクトで作業させる、小さなMCPサーバーです。現在はClaude Code、Codex、Kimi Codeに対応し、セッションを永続化するあらゆるエージェントに拡張可能です(ベンダーの追加は約60行)。スラッシュコマンド1つでセッションを名前付き環境にアンカーし、各エージェントは他のエージェントの作業内容をネイティブファイルから直接、ゼロコピーで読み取れます。
あなたの環境とワークフローに適応します——逆ではありません。 MCPサーバーを1つインストールするだけで、すでに作業している場所でそのまま作業を続けられます:Codex App、Claude Code / Desktop、Kimi Codeを並行して、または1つずつ。集中型GUIも、新しいTUIも、切り替えるアプリも、移行するものもありません。エージェントはあなたのもののまま——ただ、お互いに他人ではなくなるだけです。
Claude Code ─┐
Codex App ──┼──► chat-across bridge (stdio MCP) ──► one small SQLite (pointers + briefs only)
Kimi Code ──┘ │
└─ reads peers' NATIVE session / memory / docs in place — nothing duplicatedスラッシュコマンド
5つのコマンドですべてをカバーします。Claude CodeとKimi Codeではスラッシュコマンド、Codexでは$を入力して同名のスキルを選択します。
コマンド | 動作 |
| このセッションを環境 |
| 手動更新:更新したブリーフをプッシュし、ピアの最新情報をプルします。エージェントは重要なマイルストーンごとに自動でもこれを行うため、手動で実行する必要はほとんどありません。 |
| 切り離し。セッションは完全な分離状態に戻ります——共有データツールはすべて、再アンカーするまでフェイルクローズします。 |
| ブリッジ上のすべての環境を一覧表示:どのベンダーが含まれているか、何セッションが触れたか、最後に動いたのはいつか。 |
| 環境を削除:ブリーフとポインタを消去し、名前を解放します。名前なしで呼び出すと環境を一覧表示して確認を求めます——盲目的に削除することはありません。ブリッジの台帳管理のみで、誰のトランスクリプト、メモリ、ファイルにも触れません。 |
コマンドが行うことはすべて、自然言語でも実行できます——「delete environment project1」「what environments are there」「continue what Codex was doing」はすべて機能します。
Related MCP server: agent-context-mcp
得られるもの
アンカーリング——環境を集合地点として
環境とは、単なる一意の名前です(project1、mcpなど)。セッションは環境にアンカーし、アンカーしたセッションは共有し、アンカーしていないセッションは物理的に外部にあります——フェイルクローズ、共有なし、汚染なし。名前がアイデンティティです:既存の名前で接続すると常に参加になるため、project1が2つ存在することはありません。
ツール | 動作 |
| 名前による作成または参加。このセッション自身のネイティブトランスクリプトへのポインタを登録し(エージェントはセッションUUIDを渡してピアが読み戻せるようにします)、全ピアの最新ブリーフを返します——参加するだけでチーム全体の状態がわかります。 |
| 切り離し。スコープ付きツールはすべて再びフェイルクローズします。 |
ブリーフ——「みんなが何をしているか」レイヤー
各セッションはブリッジ上に1つの圧縮された作業ブリーフ(目標/完了/重要な決定/次)を保持し、その場でアップサートされます——32KBに制限、セッションごとに1行なので、ストレージは物理的に増えません。ブリーフは書き手のトランスクリプトのバイトウォーターマークを保持するため、読者はbehindBytesを確認できます:ブリーフ作成以降にどれだけのことが起こったかが正確にわかります。陳腐化は推測ではなく、測定された数値です。
ピアはベンダーではなくネイティブセッションUUIDでキー付けされます——1つのベンダーの複数セッションは区別されたまま(自動化ループ内の2つのClaudeシートはそれぞれ独自のブリーフを保持)ですが、再起動したMCPサーバー経由で再接続する同じセッションは1エントリに重複排除されます。sessionUuid(全ピアに表示)を任意の読み取りツールに渡すと、1つのセッションを正確に指定できます。
ツール | 動作 |
| 自身のブリーフをプッシュ(アップサート+ウォーターマーク)、ピアの最新情報をプル——1回の呼び出しで双方向。 |
ネイティブ読み取り——このプロジェクトの本当の目的
ブリッジにコピーされるものはありません。エージェントがピアの作業内容を知りたいとき、ブリッジはピア自身のアプリがすでに永続化している場所を解決し、その場で、オンデマンドに解析します:
ツール | 読み取るもの | 詳細 |
| ピアのネイティブセッショントランスクリプト(Claudeプロジェクト | 最後のN回のやり取り(デフォルト10、最大50)をファイル末尾からバイトシークで取得——書き込みロック中の660MBのrolloutでも数ミリ秒で応答します。Codexのガーディアンサブスレッドをスキップし、ハーネスのノイズをフィルタリングし、シークレット形状の文字列を編集します。 |
| ピアのネイティブメモリストア | Claude:プロジェクトごとのメモリディレクトリ。Codex:エントリごとの |
| ピアプロジェクトの恒常的なルール | ピアのプロジェクトルートからの |
まとめると:ブリーフ = 彼らが何をしているか、テール = 正確な最後の言葉、メモリ = 彼らが学んだこと、インストラクション = プロジェクトのルール。1回の接続で完全な引き継ぎコンテキストが得られます。
プロジェクトのアイデンティティは導出され、設定されることはありません:ピア自身のアーティファクトがそのcwdを保持しています(Codex session_meta、Claude jsonlレコード、Kimi state.json)。ピアセッションが閉じている、クラッシュしている、またはクォータ切れでも機能します——ブリッジはファイルを読み取るのであって、実行中のプロセスを読み取るのではありません。
ライフサイクル——可視性とクリーンアップ
ツール | 動作 |
| すべての環境と、存在するベンダー、セッション数、最終アクティビティ——「これはどのproject1か」が自ずと答えられます。 |
| 正確な名前で環境を消去して解放します。古い行は14日後に自動で自己削除されます。 |
日常的な使い方
/chat-across myproject # Claude / Kimi (Codex: type $ and pick chat-across)これだけです。エージェントはアンカーし、ブリーフをプッシュし、他の全員のブリーフをプルし、他のエージェントが何をしているかを報告します。その後:
「Continue what Codex was doing」 → エージェントはCodexのテール+メモリ+プロジェクトドキュメントをプルし、最後の文から再開します。
「What environments are there?」 →
/chat-across-listまたは単に質問します。「Start project1 over, clean」 →
/chat-across-delete project1、次に/chat-across project1。
新しいセッション、同じスレッド
セッションもピアです——自分自身の古いセッションも含めて。新しいセッション(同じベンダーでも別のベンダーでも)を開き、同じ環境にアンカーすると、前のセッションのブリーフが接続とともに届きます。*「continue where my last session left off」*と言えば、エージェントはそのセッションのネイティブテールを読み取り、最後の文から再開します。
これは古いセッションが閉じている、クラッシュしている、またはコンテキスト制限に達している場合でも機能します——ブリッジはトランスクリプトのファイルを読み取るのであって、実行中のプロセスではありません。ベンダー固有の再開(claude --resume、Codexセッションリスト)は、同じベンダーでの単純な再起動では依然として第一の選択肢です。これは、圧縮、クォータ切り替え、ベンダー間の移動でも機能する構造化されたフォールバックです。唯一の要件:古いセッションが生存中に少なくとも1回アンカーしていること。
インストール
4つのステップ:パッケージをインストール → 各ホストに登録 → スラッシュコマンドテンプレートをインストール → ホストを再起動。Windows / macOS / Linux(Node ≥ 20)で動作し、クローンもビルドも不要です。
1. パッケージをインストール
npm install -g chat-acrossこれにより、chat-acrossコマンドがPATHに追加され、パッケージ(サーバー+テンプレート)がnpmのグローバルディレクトリに配置されます——npm root -gで正確な場所が表示されます。パッケージは<そのパス>/chat-acrossにあります。
2. 各ホストにサーバーを登録
どこでも同じサーバーで、ラベルだけが異なります:
# Claude Code
claude mcp add chat-across -s user --env CHATACROSS_HOST_LABEL=claude-code -- chat-across# ~/.codex/config.toml — add this section
[mcp_servers.chat-across]
command = "chat-across"
env = { CHATACROSS_HOST_LABEL = "codex-app" }// ~/.kimi-code/mcp.json — merge into mcpServers
{ "mcpServers": { "chat-across": {
"command": "chat-across",
"env": { "CHATACROSS_HOST_LABEL": "kimi-code" } } } }グローバルインストールを避けたい場合?代わりに3つの設定すべてでコマンドとしてnpx -y chat-acrossを使用してください。開発や貢献をしたい場合?git clone + npm install + 設定をnode <repo>/src/server.mjsに向けてください。
3. スラッシュコマンドをインストール
examples/フォルダーはnpmパッケージ内に同梱されています。そのテンプレートを各ホストのコマンド/スキルディレクトリにコピーしてください——各エージェントに5つの/chat-across*コマンドを与え、接続時に自動圧縮+プッシュ+プルを行い、セッションUUIDを渡すことを教えます。
macOS / Linux:
EX="$(npm root -g)/chat-across/examples"
mkdir -p ~/.claude/commands ~/.kimi-code/commands ~/.codex/skills
cp "$EX"/claude-commands/*.md ~/.claude/commands/
cp "$EX"/claude-commands/*.md ~/.kimi-code/commands/
cp -r "$EX"/codex-skills/* ~/.codex/skills/Windows(PowerShell):
$ex = Join-Path (npm root -g) 'chat-across\examples'
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\commands", "$env:USERPROFILE\.kimi-code\commands", "$env:USERPROFILE\.codex\skills" | Out-Null
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.claude\commands\"
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.kimi-code\commands\"
Copy-Item "$ex\codex-skills\*" "$env:USERPROFILE\.codex\skills\" -Recurse -Force4. 再起動して確認
各ホストアプリを再起動して新しいMCP設定を読み込ませ、次に確認します:
Claude Code:
claude mcp list→chat-across … ✔ ConnectedCodex:
codex mcp get chat-across→enabled: true。$と入力するとchat-acrossスキルが表示されるはずですKimi:「what chat-across tools do you have」と質問
いずれかで/chat-across testと入力——created: trueはブリッジが稼働していることを意味します。
すべての配置場所
項目 | 場所 |
サーバー + |
|
| npm のグローバル bin ディレクトリ(すでに PATH に含まれています) |
ブリッジデータ(SQLite: 要約とポインターのみ) |
|
ステップ3でインストールしたスラッシュコマンド |
|
アンインストール = npm uninstall -g chat-across + 登録情報とコピーしたテンプレートの削除 + データディレクトリの削除。他にはどこにも何も書き込まれません。
既存分野との違い
クロスエージェントコンテキストツールは混雑した分野です。そして、そのほとんどは次の2つの道のいずれかを選びます。
メモリ層ツール(memorix、cass-memory、cross-agent-memory、OpenMemory、…)は独自のストアを構築します。ストップフックや取り込みパイプラインがセッションを要約してベクターDB / プレイブックに格納し、エージェントはそこに書き込む必要があります。強力ですが、維持すべき第二の脳であり、古くなるコピーを保持します。
ライブメッセージングブリッジ(Claude Channels 上の AgentBridge ↔ Codex App Server、…)は、実行中の2つのセッションがリアルタイムで通信できるようにします。共同編集には最適ですが、相手のセッションが閉じている、クラッシュしている、またはクォータを使い切っている場合には役に立ちません。まさに引き継ぎが必要なときです。
chat-across は第三の道を取ります: ストアなし、フックなし、エンベディングなし、ライブ結合なし。ホストはすでにすべて(トランスクリプト、メモリ、プロジェクトドキュメント)を永続化しているため、ブリッジは場所を解決し、その場でオンデマンドに解析するだけです。書き込むのはセッションごとに1つの制限付き要約だけです。ブリッジのDBが削除されても、価値のあるものは失われません。
設計ルール
ゼロコピー: 会話、メモリ、ドキュメントは各ホストのストレージからその場で読み取られます。ブリッジはポインターとセッションごとの1つの制限付き要約(32KB上限、14日でプルーニング)のみを保存します。ローカルのみで、ネットワークは使用しません。
フェイルクローズド: アンカーされていないセッションはどの環境にも触れることができません。
ホストがすでに持っているものを再構築しない: 共有メモリバンクなし、トランスクリプトのミラーリングなし、検索エンジンなし。読み取りエージェントにはモデルがあり、生のテキストで十分です。
誠実な解決: トランスクリプトのポインターには
uuid/explicit/heuristicのラベルが付けられ、読み手がそれらをどの程度信頼できるかを判断できます。フェイルラウド:
sync/connectは成功を主張する前にコミットが実際に反映されたことを検証し、書き込んだDBファイルを報告します。破損したデータベースは隔離され(bridge.sqlite.corrupt.<ts>)、起動時に明示的に再構築されます。ブリッジは傷ついたまま実行されることも、偽装することもありません。
ベンダーの追加
各ベンダーは約60行です: セッションルート + トランスクリプト行パーサー + cwd導出器 +(任意で)メモリストアリーダー。現在の3つ(Claude Code / Codex / Kimi Code)がテンプレートです。OpenCode、Hermes、Kiro、またはセッションをディスクに永続化するMCP対応エージェントは、同じ方法で追加できます。アダプタのチェックリストとフィクスチャ要件については CONTRIBUTING.md を参照してください。
注意事項
Claude Code はセッショントランスクリプトを30日後に自動削除します(クリーンアップは起動のたびに実行されます)。長期間の引き継ぎに依存する場合は、
~/.claude/settings.jsonのcleanupPeriodDaysを引き上げてください。そうしないと、ピアポインターがそのファイルよりも長生きする可能性があります。3つのトランスクリプト形式は未文書化のベンダー内部実装であり、変化していきます。パーサーは本質的にバージョンに結合しています(Claude Code 2.x、Codex 0.146–0.147、Kimi Code wire v2 に対してテスト済み)。PR歓迎。
接続時の
sessionUuidを強く推奨します。これがない場合、ブリッジは最新のアクティブファイルマッチングにフォールバックし、1つのベンダーの複数セッションが同時に実行されていると誤マッピングする可能性があります。末尾/メモリは基本的なシークレット編集フィルターを通過します。それはシートベルトであり、保証ではありません。
エージェントホストのいずれかがMSIXパッケージ版アプリの場合、Windows で
CHATACROSS_DATA_DIRを%APPDATA%(または他の既知フォルダーパス)に向けないでください。WindowsのAppData仮想化は、コンテナプロセスにそれらのパスのオーバーレイコピーを静かに提供し、ブリッジを決して収束しない並行世界に分割します。デフォルト(~/.chat-across)は対象外です。現場で苦労して突き止めました。
ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Memory for AI agent teams across tools, sessions, repositories, and teammates.
Shared memory for AIs. Share a project with anyone and their AI knows everything yours does.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI coding assistants like Claude Code, Cursor, and Codex to share chat logs, terminal history, and session context with each other. Eliminates the need to re-explain context when switching between different AI coding tools.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to read each other's conversation history read-only and sanitized, so you can continue work across different tools without re-explaining context.MIT
- AlicenseAqualityCmaintenanceEnables any AI coding agent to instantly find and resume sessions created in another agent. It indexes sessions from multiple harnesses locally and injects a compact, ready-to-resume payload without using LLM tokens.41MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to ask the user questions, receive written replies, share files, and hand tasks to other agent sessions — with every cross-agent request routed through human approval first. Sessions register themselves so they can be read, woken, and answered from a phone over a local-first, self-hosted setup.2Apache 2.0