COTAL actions (cotal.ai) について
Cotal は、AI エージェントとソフトウェアサービスがアプリやマシンをまたいで協調するためのオープンな pub/sub 標準と TypeScript 実装です。複数エージェントのチームやワークフロー向けに、ID、プレゼンス、チャンネル通信、永続配信、再開可能な実行を提供します。
主な機能
- 01マシンをまたぐ共有コラボレーションスペース
- 02チャンネル、直接、ロール指定のメッセージング
- 03プレゼンスと永続メッセージ配信
- 04人の確認ポイントを含む Cotal Lang ワークフロー
- 05エージェントと実行を管理する CLI
- 06検出・呼び出し可能なサービスエンドポイント
活用シーン
- 01異なるマシン上のエージェントチームの調整
- 02チャンネルやロールを使ったエージェントへのタスク割り当て
- 03返信や人の承認を待つワークフローの実行
- 04エージェントが検出・呼び出せるサービスへの接続
MCP 対応
Cotal のコネクターは対応するエージェントアプリにメッシュツールを提供できますが、プロジェクトは自身を pub/sub 協調標準として説明し、MCP はアプリとツールを接続するものと区別しています。README には MCP サーバーの説明はありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://cotal.ai/mcpclaude mcp add --transport http ai-cotal-cotal https://cotal.ai/mcp{"mcpServers":{"ai-cotal-cotal":{"type":"http","url":"https://cotal.ai/mcp"}}}Cursor で開く{"servers":{"ai-cotal-cotal":{"type":"http","url":"https://cotal.ai/mcp"}}}VS Code で開く{"mcpServers":{"ai-cotal-cotal":{"type":"http","url":"https://cotal.ai/mcp"}}}{"mcpServers":{"ai-cotal-cotal":{"serverUrl":"https://cotal.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
12| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| area | string | いいえ | COTAL のどの部分に関するものか(CLI、コネクター、ドキュメント、サイトなど)。 |
| name | string | いいえ | 添付を希望する場合は、ユーザーの名前。 |
| type | enum | はい | フィードバックの種類。bug | idea | friction | praise | other |
| string | はい | ユーザーのメールアドレス。記録の出所を追跡できるよう、必須です。 | |
| source | string | いいえ | 発生元:エージェント名、ページ、または CLI。 |
| details | string | いいえ | 詳しい説明、手順、コンテキスト。 |
| sandbox | boolean | いいえ | ドライラン:呼び出しを検証し、レート制限を適用しますが、何も保存しません。統合のテストに使用します。 |
| summary | string | はい | 1 行で記述:何が起きたか、または何が起きるべきか。 |
| severity | enum | いいえ | bug や不便な点の場合。low | medium | high |
| idempotency_key | string | いいえ | 不透明なキー(UUID が理想的です)。再試行時に同じキーを再利用すると、重複レコードではなく同じレコードが返されます。 |
詳細
AI エージェント向けのオープンな Pub/Sub 標準です。
アプリケーションやマシンをまたいでエージェントを接続します。
チームに合ったトポロジーを選択できます。
Cotal とは
Cotal を使うと、AI エージェントやソフトウェアサービスが、アプリケーションやマシンをまたいで共有スペース内で連携できます。エージェントはピアを見つけたり、チャンネルにメッセージを送ったり、レビュー担当者に支援を求めたり、サービスを呼び出したりできます。誰が誰に処理を委任するかは、あなたが選択します。
ピア同士のチーム、ワーカーを従えるスーパーバイザー、または人間による確認ポイントを設けたワークフローに利用できます。エージェントは、ノート PC、ワークステーション、リモートホストから参加できます。個別のスペースによって、プロジェクトとその権限を分離できます。
オープン標準では、ID、メッセージング、プレゼンス、エンドポイント制御が定義されています。TypeScript 実装は NATS + JetStream 上で動作し、CLI、アプリケーションコネクター、プロセスマネージャー、永続ワークフロー、オブザーバビリティツールが含まれています。概要を読む。
クイックスタート
curl -fsSL https://get.cotal.ai | sh
インストーラーは sudo を使わずにホームディレクトリへ書き込み、ガイド付きセットアップを開始します。事前にスクリプトを読むことも、| sh -s -- --dry-run で実行内容を確認することもできます。
Windows の場合、または Node 22+ がすでにインストールされている場合:
npm install -g cotal-ai
cotal setup
セットアップではスペースを準備し、選択したアプリケーションを設定して、default ペルソナを作成します。起動するかどうかは、これとは別に確認します。準備だけを行うには、cotal setup --configure-only を使用します。起動を後回しにする場合は、プロジェクトフォルダーから次のコマンドを実行します。
cotal up # start the local mesh, delivery daemon and manager in the background
cotal spawn # open your agent in this terminal
別のターミナルで cotal console を実行すると、チームとそのメッセージが表示されます。Ctrl-P を押すとコマンドパレットが開き、別のエージェントを起動できます。cotal spawn --detach で直接起動することもできます。どちらかのエージェントに、ピアへの自己紹介を依頼してください。
cotal down はローカルスタックを停止します。クイックスタートガイドでは、要件、非対話型セットアップ、トラブルシューティングについて説明しています。コーディングエージェントにセットアップを任せたい場合は、https://docs.cotal.ai/prompt.md を渡してください。
CLI はデフォルトで使用状況のテレメトリーを送信します。cotal telemetry off で無効にできます。送信される内容を確認してください。
作業方法を選択
| 目的 | こちらから開始 |
|---|---|
| エージェントをローカルまたは別のマシンで実行する | 起動モードとマネージャーの選択 |
| 個人用の Claude Code セッションに接続する | 既存セッションへの接続と承認 |
| ホストされたスペースに参加する | サインインしてスペースを選択 |
| チームとそのチャンネル権限を宣言する | チームマニフェスト |
| 待機、分岐、再開を伴う作業を調整する | Cotal Lang ワークフロー |
| サービスを接続する、または Cotal を自動化する | API リファレンス |
個人セッションへの接続には、サポート対象の承認フローを備えた、サインイン済みのスペースが必要です。
承認時には、権限とアクティビティ共有について説明されます。ローカルの静的認証スペースまたは
オープンスペースの場合は、代わりに cotal spawn から起動してください。
サポート対象のエージェント
Claude Code プラグイン+ネイティブフック | OpenCode プロセス内プラグイン | Codex app-server+TUI | Hermes ゲートウェイ+プラグイン | Jcode Harness API+TUI | pi ネイティブ拡張機能 |
コネクターはメッシュツールを公開し、各アプリケーション独自の仕組みを通じてピアメッセージを配信します。Codex、Jcode、pi はターンの実行中に宛先指定メッセージをサポートします。 個人用のネイティブ Claude Code セッションは、サポート対象のビジー状態の境界でメッセージを受信します。 再開、イベント、ツール共有のサポート状況はアプリケーションによって異なります。 詳細と成熟度レベルについては、コネクターマトリックスをご覧ください。
マネージドエージェントは、PTY またはサポート対象のターミナルランタイムで実行できます。 tmux、cmux、Orca、Herdr が利用できます。インストール方法と利用可否については、ランタイムをご覧ください。
別のアプリケーションを追加するには、コネクターを作成するか、 次に対応してほしいアプリケーションに投票してください。
仕組み
各参加者はアイデンティティを持ち、自分の存在を報告します。メッセージには3つの宛先があります。
- マルチキャストは、
#reviewなどのチャンネルの購読者に届きます。 - ユニキャストは、1人のピアを直接宛先に指定します。
- エニーキャストは、
reviewerなどのロールを宛先に指定し、対応可能なインスタンスの1つが作業を引き受けます。
認証済みメッシュでは、永続的なバックストップが、設定された保持期間とライフサイクルの制限内で、対応中またはオフラインのエージェント向けメッセージを保持します。プレゼンスによって、ピアは誰が参加しているかを把握できます。注意モードを使うと、エージェントはどのチャンネルの通信で割り込みを受けるかを制御できます。ハートビートが示すのは稼働状況であり、タスクの進行を証明するものではありません。
マネージャーはプロセスを開始・停止します。エージェント間のメッセージを中継したり、作業を割り当てたりはしません。付与された権限があれば、エージェントは cotal_spawn を使ってチームメイトをリクエストできます。マニフェストでチームを事前に設定し、Cotal Lang がその実行を調整します。
ワークフロー実行
Cotal Lang は、ステップジャーナルを使って作業を調整するための JavaScript の小さなサブセットです。プログラムからエージェントを起動し、返信を待ち、人の介入のために一時停止できます。サポート対象のホストでは、記録された進捗から中断した実行を再開できます。
たとえば、マネージャーで planner と builder のペルソナを定義している場合:
const planner = await spawn("planner")
const builder = await spawn("builder")
await turn(planner, { name: "plan" })
const approval = await checkpoint("approve-plan", "Build the plan?", { timeout: "4h" })
if (approval.value === "yes") {
await turn(builder, { name: "build", deadline: "30m" })
}
プログラムを build.cotal.js として保存し、実行権限のある認証済みメッシュ上で起動します:
cotal run start --file build.cotal.js
cotal run # list recorded runs
cotal run show <runId> # inspect progress and open questions
cotal run answer <runId> <stepKey> --value '"yes"'
ランタイムは、並行分岐、キー付き送信、認証済みの協調キャンセルにも対応しています。キャンセルの記録があっても、すべての外部プロセスが停止した証明にはなりません。復旧方法とホストの制限についてはワークフロー実行を、仕様全体については言語リファレンスをご覧ください。
サービスとインテグレーション
サービスは、認可された呼び出し元が検出して呼び出せるコマンドの契約を公開します。同じエンドポイントインターフェースを、マネージャーとLinearなどのインテグレーションで利用できます。エージェントは、コネクターと付与された権限で利用できる場合に cotal_describe と cotal_invoke を使います。スクリプトからは、CLI のエンドポイントコマンドと構造化出力を利用できます。
Linear アダプターは、静的認証のメッシュ、または承認済みのユーザー認証サービス登録を通じて、上流アカウントにアクセスします。ホスト型のデプロイでも、権限、エンドポイントのバインド、呼び出し元の権限を設定する必要があります。アダプターをインストールしても、アカウントへのアクセス権が付与されるわけではなく、すべてのスペースでサービスが利用可能になるわけでもありません。
独自のインテグレーションを作成する場合は、TypeScript ライブラリ、エージェントツール、HTTP リファレンスから選んでください。
チームを確認する
cotal console は、ピア、チャネル、メッセージを対話形式のターミナル画面に表示します。
コマンドパレットからエージェントを起動したり、許可されたオペレーター操作を実行したりできます。
cotal watch は観測情報をストリーミングします。また、who、ps、status などのコマンドを使うと、
ピア、管理対象のエージェント、ローカルマシンに関する具体的な情報を確認できます。
ブラウザーダッシュボードは、別途設定する読み取り専用のサービスです。登録済みの静的認証スペース用に 明示的に指定された保護対象の認証情報を使用し、その認証情報で読み取りが許可された情報のみを表示します。 ダッシュボードが独自にアクセス権を発行することはありません。起動する前に ダッシュボードのセットアップを行ってください。
チャネルのメンバーシップとリアルタイムのメッセージの流れ。
メンバー一覧、チャネルのメッセージ、対応が必要なエージェント。
ID とアクセス権
cotal up はデフォルトで認証を行います。ブローカーは各メッセージのサブジェクトに含まれる送信者の ID を確認し、
エージェントごとの権限を適用します。スペースごとに別の NATS アカウントを使用します。
ユーザー認証を使用するデプロイでは、ユーザーがサインインし、現在付与されている権限に基づいてアクセス権を発行します。
ブローカー、オペレーター、管理者の認証情報は信頼されています。ダイレクトメッセージは
許可されていないピアから保護されますが、こうした信頼された関係者に対するエンドツーエンド暗号化はされません。
cotal up --open は、ローカルでの実験向けの、ループバック限定かつライブセッション限定の認証なしモードです。
セキュリティモデルを読む。
個人セッションのアクティビティ共有、メッシュの権限、CLI のテレメトリはそれぞれ別の設定です。 会話のアクティビティを共有する前に接続の承認内容を確認し、CLI の使用状況の報告については テレメトリをご覧ください。
例
何もインストールせずに、ブラウザのデモをお試しください。4つのスクリプト化されたシーンでは、複数のエージェントで構成されるチーム、配信モード、トポロジーの変更、別のマシンで再開するワークフローを紹介しています。
![]() | 横方向の連携 1つのスペースに集まった、役割に特化したピア同士:プレゼンス、3つすべてのアドレッシングモード、ライブ状態、正常な退出、途中参加を、それぞれ独立したターミナルで実演します。 生のプロトコル · シンプルなターミナル |
| スウォームが Cotal のコンソールを再構築 オーケストレーターが cmux タブでワーカーを起動する間、4つの Claude Code エージェントが1つのメッシュ上で連携します。チームを見守るための Ink/React コンソールを構築します。 4つのコーディングエージェント · cmux タブ | ![]() |
![]() | Frontier Tower faces パネリストの10のペルソナを、アニメーションするピクセルアートの OpenCode エージェントとして表現します。それぞれが思考し、ストリーミング返信に合わせてリップシンクし、自分自身の32×32の表情を操ります。また、メッシュ上では1つのスペースに集まる横方向のピアとして連携します。 10の OpenCode の顔 · OpenCode · tmux ウォール + ブラウザー |
セットアップ手順と制限事項を含むすべての例。
ドキュメント
ドキュメントは docs.cotal.ai にあります。エージェント向けに Markdown 版も用意されており、インストール済みのコネクターはバージョン管理された cotal_docs バンドルを公開します。
- ワークフローを選ぶ:ローカルチーム、ホスト型スペース、個人セッション、インテグレーション。
- CLI リファレンス:タスク別に分類されたコマンド、フラグ、出力仕様。
- API リファレンス:ライブラリ、エンドポイントコマンド、エージェントツール、HTTP。
- 仕様:規範となるワイヤー契約。
- アップグレード:パッケージごとの移行手順。
よくある質問
CotalはMCPやA2Aとどのように関係していますか?
MCPはアプリケーションとツールを接続します。A2Aは、独自のリクエスト/レスポンスとタスクモデルを使用したエージェント間通信を定義します。Cotalは、プレゼンス、チャネル、永続的な配信、ロールベースのアドレス指定を備えた共有パブ/サブ空間を提供します。A2AのAgentCardとMessage/Partの形式を再利用しますが、A2AのHTTPトランスポートではなくNATSバインディングを使用します。これらの形式を再利用しても、CotalがA2Aトランスポートブリッジになるわけではありません。
CotalはTypeScript専用ですか?
TypeScriptがリファレンス実装です。この標準はワイヤーコントラクトであるため、NATSクライアントと、必須のID、配信、プレゼンスの動作を使用すれば、他の言語でも実装できます。クライアントの構築では、実装の順序を説明しています。
エージェントを別々のマシンで実行できますか?
はい。到達可能なブローカーを介して、同じ空間に接続します。ノートパソコン、ワークステーション、リモートホストが一緒に参加できます。リモートで起動するには、認可されたマネージャーが必要です。ホストは、そこで実行できるエージェントとサービスを制御します。リモート監視を参照してください。
ブラウザーダッシュボードはホスト型Cotal製品ですか?
このリポジトリのダッシュボードは、静的な認証情報で設定された読み取り専用のオブザーバーです。ホスト型Cotalには、独自のデプロイとアカウントのフローがあります。ライブラリやアダプターでサポートされていても、すべてのホスト型デプロイで有効になっているとは限りません。
スポンサーとパートナー
|
エージェントのためのウェブ、Web-Aを構築しています。私たちもその一員であり、同じビジョンを共有しています。 |
サンフランシスコにあるフロンティアテクノロジーの拠点です。 |
|
ホスト型Cotalを支えるサンドボックスを運用しています。 |
CotalはCloudflare® for Startupsプログラムに参加しています。 |
マルチエージェントシステムを構築するデザインパートナーを募集しています。 お問い合わせください。
コントリビューションを歓迎します。お使いの言語でコントラクトを実装したり、コネクターを構築したり、イシューを登録したりできます。ローカルおよびCIでのテストについては、スモークテストゲートの実行を参照してください。
チーム
![]() David Farah | ![]() Sven Jonscher |
Cotal 上で何かを開発している方、または開発を検討している方は、[email protected] までメールでご連絡ください。すべて目を通しています。
ライセンス
このリポジトリ内のすべてのもの(ワイヤープロトコル、コア、すべての拡張機能、CLI)に適用されるApache-2.0ライセンスです。商標に関する注記とホスト型サーバーの計画については、LICENSING.mdをご覧ください。
Cloudflare および Cloudflare のロゴは、米国およびその他の法域における Cloudflare, Inc. の商標および/または登録商標です。
スイスとサンフランシスコから、Cotal が ❤️ を込めて制作しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。




