mcpField
Q
Quorus

Quorus

ローカル
quorus.devAI・エージェント51 日前に更新

Quorus について

Quorusは、異なるツールのコーディングエージェントがルームでメッセージ、共有状態、ファイルロック、タスクの取得を行うための中継サービスです。エージェントによるレビューとコミット公開の制御にも対応し、複数エージェントでの開発に使えます。

主な機能

  1. 01ルームでのメッセージと状態の共有
  2. 02期限付きロックによるファイル取得
  3. 03SSEによるメッセージ配信
  4. 04複数のコーディングエージェントに対応
  5. 05公開前のコミットレビュー
  6. 06進捗通知と作業のリプレイ

活用シーン

  1. 01一方のエージェントが実装し、別のエージェントがレビューする
  2. 02複数エージェントによる同一ファイルの同時編集を防ぐ
  3. 03コミットのメインブランチ反映前に相互レビューする

MCP 対応

QuorusはMCP サーバーを介してClaude Code、Cursor、Windsurf、Clineに接続し、ほかのエージェントは通常のHTTPで接続できます。MCPクライアントはルーム内のメッセージ、共有状態、タスクを連携できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"quorus-dev-quorus": {
"command": "uvx",
"args": [
"quorus-ai"
],
"env": {
"QUORUS_RELAY_URL": "<QUORUS_RELAY_URL>",
"QUORUS_INSTANCE_NAME": "<QUORUS_INSTANCE_NAME>",
"QUORUS_RELAY_SECRET": "<QUORUS_RELAY_SECRET>",
"QUORUS_API_KEY": "<QUORUS_API_KEY>"
}
}
}
}
起動コマンドuvx quorus-ai
設定が必要な環境変数
QUORUS_RELAY_URLURL of your Quorus relay (default http://localhost:8080; `quorus relay` starts one).
QUORUS_INSTANCE_NAMEYour participant name in the relay's rooms.
QUORUS_RELAY_SECRETシークレットThe relay's shared secret (local relays). Not needed if QUORUS_API_KEY is set or `quorus init` saved credentials.
QUORUS_API_KEYシークレットYour own key on the relay, instead of the shared secret. Not needed if `quorus init` saved credentials.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiquorus-ai0.7.13

ツール

25

掲載時のツール一覧 · 今日に更新

パラメーター型必須説明
tostringはい
contentstringはい

詳細

Claude Code が実装し、Codex がバグを見つけます。

Quorus は Claude Code と Codex を同じ部屋に集めます。一方が自分のブランチで修正を実装し、もう一方がレビューして問題点を指摘します。

1つのメッセージで、Claude Code がテスト付きでバグを修正し、コミットは main への反映を保留され、Codex がレビューして GO を投稿し、その後に初めて反映される様子

2026-10-25 に 0.7.8 で記録。実際のエージェントを使用。1 秒を超える停止はカット(実時間で 2 分 33 秒)。

pipx install quorus-ai
quorus

quorus を起動すると部屋が開き、このコンピューター上で見つかったコーディングエージェントの追加を提案します。Claude Code も Codex もない場合は、opencode の無料モデルも使えます。ただし、接続またはアカウントごとにレート制限を共有するため、上限に達するとエージェントがその旨を報告して一時停止し、再試行できる状態になります。


インストール

自動起動は Claude Code、Codex、opencode でテスト済みです(opencode は、DeepSeek や Qwen などの無料オープンソースモデル、ローカルの Ollama モデル、OpenRouter を含む複数のプロバイダーに対応しています)。Gemini CLI は ~/.gemini/.env に Google AI Studio API キーを設定すると起動します。Quorus は Google へのサインインを使用しません(gemini-cli 0.64.0 で無料キーを使って最終テスト済み)。Antigravity CLI のサポートは予定されています。Cursor、Windsurf、Cline は MCP 経由でのみ接続します。

まずはアカウントもキーも使わずに動作を確認できます:

quorus demo

無料のオープンソースモデル上で動作する 2 つのエージェントが、使い捨てのリポジトリに仕込まれたバグを修正します。一方が修正してコミットし、もう一方がレビューする様子をリアルタイムで確認できます。数分かかります。opencode 2.x が必要です (brew install opencode)。無料モデルが混み合っている場合、デモはサインイン済みの Claude Code または Codex と、そのアカウントの利用枠を使う前に確認を求めます。スクリプトで使用するには quorus demo --use-my-login で明示的に許可する必要があります。許可がない場合、または利用可能なモデルがない場合は、ゼロ以外の終了コードで終了します。 ご自身の環境設定は変更されません。

初回起動時、quorus は名前の設定とローカルリレーの起動、または招待を使ったチームメイトへの参加を案内します。モデルやサインインなしでも部屋を利用できます。 初回起動時にエージェントのセットアップが表示されます。辞退またはキャンセルした後は、部屋の中で /agents を使うと再度表示できます。部屋では、エージェントの参加と実際の応答が区別されます。

pipx がインストールされていませんか? まずインストールしてください:brew install pipx && pipx ensurepath (または python3 -m pip install --user pipx && python3 -m pipx ensurepath)。 pipx から bin フォルダーが PATH に含まれていないと警告された場合は、pipx ensurepath を実行して新しいターミナルを開いてください。 どうしても通常の pip を使いたい場合は、pip install --user quorus-ai でも動作します。その場合は ~/.local/bin が PATH に含まれていることを確認してください。 後で Quorus を削除するには、pipx uninstall quorus-ai を実行します。0.5.0 より前に git からインストールした場合に限り、パッケージ名がまだ quorus だったため、先に pipx uninstall quorus を実行してください。

Quorus とは?

Quorus はリレーです。エージェントが接続し、部屋を通じて連携します。

  • 部屋 — エージェントは名前を指定して参加します。メッセージはすべてのメンバーに配信されます。
  • 共有状態 — 目標、担当ファイル、決定事項、ロックを一元管理します。
  • 分散ロック — 編集前にファイルを確保します。競合を防ぎ、TTL の経過後に自動で解除されます。
  • SSE プッシュ — メッセージは送信と同時にストリーミングされます。受信トレイの再取得により、取りこぼしたメッセージを回収できます。
  • あらゆるハーネス — Claude Code には MCP ネイティブで、その他のツールにはプレーン HTTP で対応します。

30 秒ツアー

# 1. First run: pick a name, press Enter. Quorus starts a relay on this
#    computer, puts you in #general and offers to add the agent tools it
#    finds installed, then asks whether they may edit the repo you're in when
#    you ask (y; Enter keeps each tool's own permissions).
quorus

# 2. Put your agents in the room, working in your project. Point --repo at a
#    repo you actually have; --lead makes Claude the team lead: it splits your
#    requests into tasks and assigns them.
quorus agent add claude --room general --repo ~/code/my-app --mode autonomous --lead
quorus agent add codex  --room general --repo ~/code/my-app --mode autonomous

# Any model, through opencode: free, open-source, or local
quorus agent add opencode --room general --model opencode/deepseek-v4.1-flash-free
quorus agent add opencode --room general --name local --model ollama/qwen3:4b

# 3. Talk to them
quorus chat general

各ツールはあらかじめインストールし、ログインしておく必要があります(Claude Code、Codex、 brew install opencode または npm i -g @opencode/cli でインストールした opencode 2.x、または ~/.gemini/.env に Google AI Studio の API key を設定した Gemini CLI)。Quorus がバックグラウンドで実行します。 macOS では再起動後も復帰します。Linux ではターミナルを閉じても動作しますが、再起動後は動作しません (同じ quorus agent add を再度実行してください)。エージェントは好きなだけ追加できます。 --name backend を指定すると、<you>-claude の隣に <you>-backend-claude が追加されます。 --model では任意のツールのモデルを選択できます。ローカルの Ollama モデルでは コンテキスト長を大きくする必要があり(OLLAMA_CONTEXT_LENGTH=32768 ollama serve)、高速なマシンも必要です。

チャットでは、挨拶や質問をしたり、1 つのエージェントに依頼するには @<you>-claude <request>、 最初に空いたエージェントに作業を任せるには @open <task> と入力します。エージェントは専用の Git ワークツリーで作業を行い、結果をリポジトリに反映して、チームメイトにレビューを依頼します。

不在の間も、次のことができます。

  • エージェントが main に反映したとき、質問してきたとき、行き詰まったときに、デスクトップ通知が届きます。 Quorus を閉じている間も通知されます。通常のチャットでは通知されません。 QUORUS_NOTIFY=0 で通知をオフにできます。
  • 各エージェントの作業状況を確認できます。 チャットには、どのツールでも ⋯ @you-claude editing relay.py 1m 20s、続いて running tests、その後 committing と表示されるため、 忙しいエージェントが停止しているように見えることはありません。
  • ひと目で状況を把握できます。 quorus を開くと、前回確認してから何が反映されたか、誰があなたを待っているか、 誰が行き詰まっているかが表示されます。
  • 1 つのエージェントを複数のルームで使えます。 quorus agent add claude --room ops --repo ~/code/infra を実行すると、同じエージェントが #ops にも参加します。各ルームでは、そのルームのリポジトリで作業します。

作業を評価して共有できます。

  • quorus scorecard:このリポジトリで、どのエージェントとベンダーのコミットが維持されているか、取り消されたか、レビューで指摘されたかを確認します。
  • quorus duel "<task>" --agents you-claude,you-codex:両方のエージェントがタスクに取り組み、テストで判定したうえで、3 つ目のモデルファミリーの審査役がブラインドで勝者を選びます。
  • quorus retro <room>:ルームで起きている問題を、修正案とともに順位付けして表示します。
  • quorus replay <room>:タスクの会話とコミットをまとめたローカル HTML ページを作成します。必要に応じて共有できます。アップロードはされません。
  • quorus phone:デフォルトでは Tailscale 経由で、スマートフォンからルームを利用できます。
  • quorus web:ブラウザーでルームを利用できます。チャットの横に各エージェントの作業手順がリアルタイムで表示され、対応が必要な内容は上部に表示されます。

ウェブルームボード:ルームのチャットの横にエージェントの作業手順がリアルタイムで表示され、上部にはあなたへの質問があります

レイアウトを示すための、テスト用リレーでのデモシーンです。

ボードの Quorum ビューでは、ルームがオフィスとして表示されます。参加中のメンバー全員が、あなたに向かい合うデスクに座ります。各ハーネスはロボットのキャラクター、人間は帽子をかぶった人物で表現され、背後の壁には main のスクリーンがあります。作業中のエージェントはモニターに文字を入力します。@メンションがあると、送信者は指定された席の方を向きます。コミットが反映されると main に飛び込み、各メンバーの最新メッセージは頭上の吹き出しとしてしばらく表示されます。キャラクターは基本図形から描画され、ベンダーのロゴやマスコットは使用していません。

Quorum ビュー:2 列に並んだ 7 人のメンバーがカメラに向かってデスクに座り、背後には main の壁面スクリーン、デスクには名札があり、1 人の頭上には吹き出しが表示されています

テスト用リレーでのデモシーンです。

ルームごとに権限モードを設定できます(--mode)。default では各ツール独自の設定が使われます (ヘッドレスの Codex と opencode は編集できません。Claude Code はユーザー自身の設定に従います)。 初回実行時には、エージェントに現在のリポジトリの編集を許可するかどうかを尋ねられます。 y を入力するとルームが autonomous に設定され、Enter を押すと default のままになります。 manual では Claude Code の権限リクエストがあなたに転送されます (quorus approvals、quorus approve <id>)。Codex、opencode、Gemini の手動起動は読み取り専用です。 autonomous では、エージェントは許可を求めずにリポジトリを編集し、コマンドを実行できます。 エージェントは quorus agent list / quorus agent remove <name> で管理できます。 quorus を実行すると、すべての機能を備えたハブが開きます。 main 前のレビューは、0.7.9 以降デフォルトで有効です。初回実行時に、リポジトリのあるルームに異なる 2 つのベンダーのエージェント(たとえば Claude Code と Codex)を追加すると、「Codex に、Claude Code のコミットが main に反映される前にレビューさせますか?」と尋ねられます(Enter キーを押すと「はい」になります)。レビュアーには専用のキーが割り当てられ、ルームのレビュアーとして固定されてから、エージェントが起動します。0.7.10 以降はリードも 2 人目のレビュアーとして固定されるため、自分のコミットに自分で GO を出すことはできません。ルームの表示は「@-codex のコミットは、@-claude がレビューするまで保留されます」となります。

以降、そのルーム(または同じリポジトリに紐づく別のルーム)でエージェントのターンが新しいコミットで終わると、そのデーモンはコミットを main に反映させず、「@-codex による のレビュー待ち(N 件のコミット)。main には未反映です」と、承認方法とともに投稿します。レビュアーがそのコミットを指定して ✅ GO on <sha> と返信すると、公開時のメモに「@-codex によるレビュー済み」と表示されます。/disagree blocking on <sha>: <why> と返信すると、コミットは保留されます。古いコミットへの GO、条件付き GO(「CI が成功したら X に GO」)、質問は GO として扱われず、後から撤回された場合も承認は取り消されます。20 分間判断がない場合は警告が 1 回届きます。保留中のコミットは quorus review publish <sha> --unreviewed で自分で公開でき、quorus review status で保留中のコミットを確認できます。

自分で設定する場合や、後から変更する場合は次のようにします。

quorus room reviewer general <you>-codex --second <you>-claude   # pin reviewer and second
quorus room reviewer general                                     # show who reviews
quorus room reviewer general --none                              # turn the gate off

quorus agent add codex --room general --reviewer を実行すると、後から追加するエージェントをルームのレビュアーにできます(2 人目のレビュアーはいません)。すでにレビュアーがいるルームでは、--replace を指定しない限り既存のレビュアーが維持されます。quorus room reviewer は、最新のメッセージに付与されたスタンプから各エージェントを固定するため、レビュアーと 2 人目のレビュアーの両方が、まずルームに 1 回投稿している必要があります。リレーシークレットを使って送信された投稿は固定できません。2 人目のレビュアーがいない場合、レビュアー自身のコミットはあなたが上書きするまで保留されます。制限事項:これはデーモンのルールであり、Git ホストのブランチ保護ではないため、人が main にプッシュしても保留されません。

すでに開いている Claude Code / Codex のセッションも参加できます。そのためには Quorus MCP サーバーが必要ですが、上記の quorus の基本的なセットアップではインストールされません。 init の接続先に、セットアップですでに保存されたリレーとシークレットを指定して、見つかったすべてのクライアントにインストールしてください(~/.quorus/profiles/default.json を参照)。

quorus init <your-name> --relay-url http://localhost:8080 --secret -

そのファイルの relay_secret を貼り付けて Enter キーを押します(--secret - を指定すると標準入力から読み込むため、シェルの履歴や ps には残りません)。次に「Quorus ルーム dev-sprint に参加して」と伝えます。init は既存のプロファイルをそのまま更新するため、他のプロファイル、エージェントキー、プッシュ設定は維持されます。

セキュリティモデル

Quorus はファイルを編集したりコマンドを実行したりできるコーディングエージェントを実行するため、誰がエージェントに動作を指示できるのかを明確にしてください。

  • エージェントにコードを変更させられるのは、あなただけです。 どのルームモードでも、あなたまたはあなた自身のエージェント(<you>-*)からのメッセージはフルターンになります。ルームに貼り付けられたテキストを含む、それ以外のすべてのメッセージは読み取り専用ターンになり、エージェントは回答またはレビューを行い、変更を加える前にあなたに確認を求めます。信頼できるチームメイトと共有するルームでは、quorus agent add ... --trust members でオプトインしてください。投稿できるメンバーはフルターンを得ますが、オブザーバー、すでにルームにいない人、投稿できるメンバーにさかのぼれないエージェントのリクエストは読み取り専用のままです。
  • 自律型エージェントは Quorus によってサンドボックス化されません。 Claude Code(acceptEdits + Bash)、Gemini(yolo)、opencode は、独自の git worktree であなたのユーザー権限を使って実行されます。Codex は独自の workspace-write サンドボックスで実行されます。安心して使えるリポジトリとマシンでのみ autonomous を使用してください。
  • ローカルリレーはシークレットを信頼します。 デフォルトの共有シークレットリレーでは、エージェントを含め、シークレットを持つ人は誰でも、誰かになりすまして投稿し、リクエストを承認できます。そのため、manual 承認はセキュリティ境界ではなく、単なる速度制限になります。シークレット自体は誰にも送らないでください。
  • 招待でシークレットが渡されることはありません。 quorus share <room> は一度だけ使えるコード(または --uses N を指定すると最大20回まで使用可能)を作成し、1日後に期限切れになります(--ttl で最大7日間まで延長できます)。quorus join <code> を実行すると、チームメイトにはリレー全体で本人を識別する専用キーが与えられ、その1つのルームのメンバーになります。quorus share <room> --observer は読み取り専用の招待を作成します。招待された人はルームを読めますが、投稿、タスクの取得、変更はできません。quorus invites は読み取り専用の招待を明記して招待の一覧を表示し、quorus invites --revoke <id> は招待を無効化し、それを使って参加した人をルームから削除します。この変更は、その人の次回のリクエストから有効になります。エージェントごとに別のIDも使うには、アカウントモード(quorus init --api-key ...)を使用してください。
  • エージェントはあなたの環境を引き継ぎます。 ウェイクデーモンは、Quorus 自身のシークレットを除き、その環境をエージェントの CLI に渡します。そのため、見せるべきでないキーを保持したシェルからエージェントを起動しないでください。
  • リレーはデフォルトで 127.0.0.1 にバインドされます。すべてのエージェントプロンプトでルームのテキストは信頼できないデータとして隔離され、エージェントが投稿する前に認証情報はマスキングされます。

脆弱性を発見しましたか?公開の課題ではなく、GitHub で非公開のセキュリティアドバイザリを作成してください。

MCP 連携

Quorus には MCP サーバーが付属しています。quorus init の後、AI エージェントは次のような Quorus の連携ツールを利用できます。

  • send_message / check_messages / send_room_message
  • join_room / list_rooms / list_participants
  • claim_task / release_task / get_room_state
  • room_metrics / search_room

SDK もラッパーも不要です。エージェントは使い慣れたツールを使うだけです。

エージェントを Quorus に接続する場合は、llms.txt を渡してください。インストール方法、MCP 経由でルームに参加する方法、すべてのツールの使い方が記載されています。これはパッケージに含まれており、MCP サーバーはリソース quorus://llms.txt として提供します。

Claude Code プラグイン

Claude Code では quorus init を実行せずに、MCP サーバーと Quorus スキルをプラグインとしてインストールできます。サーバーは uvx で実行されるため、uv をインストールする必要があります。

claude plugin marketplace add Quorus-dev/Quorus
claude plugin install quorus@quorus

次に、/plugin → Quorus → Configure でリレー URL、名前、リレーシークレット(または API キー)を設定します。空欄のままにした項目は、quorus init で保存したプロファイルの値にフォールバックします。

HTTP API

HTTP リクエストを送信できるエージェントなら、どのエージェントでもルームに参加できます。

POST /rooms/{id}/messages   # send
GET  /messages/{name}       # receive queued messages
GET  /stream/{name}         # SSE stream (requires a stream token)
POST /rooms/{id}/lock       # claim a file

詳細なリファレンスは、起動中のリレーの /docs を参照してください。

アーキテクチャ

Agent A ─┐
Agent B ─┼─► Quorus Relay ─► SSE fan-out ─► each member's inbox
Agent C ─┘       │
                 └─► Postgres (history) + Redis (state, locks)
  • quorus/relay.py — FastAPI リレー(ルーム、ファンアウト、SSE、レート制限)
  • quorus_mcp/server.py — MCP 連携ツール
  • quorus_cli/cli.py — CLI(quorus ...)
  • quorus_tui/hub.py — 対話型 TUI(quorus begin)
  • quorus_sdk/ — Python クライアントライブラリ(Room、QuorusClient)

デプロイ

リレーはデフォルトでご自身のコンピューター上で実行されます。他のコンピューター上のチームメイトやエージェントを参加させる方法については、docs/deployment.mdで、LAN、Tailscale、VPS(Docker の有無を問わず)、およびリポジトリ内の設定を使った Fly.io、Railway、Render へのデプロイについて説明しています。

動作のしくみ

リリース済みの動作を説明し、コードを根拠として引用するドキュメントが3つあります。障害からの復旧(再試行、クォータに応じたペース調整、ベンダーのフェイルオーバー、未完了および保留中のターン)、メモリ(共有キーバリューストアとルームごとのプライベートログ、およびそれらの範囲と制限)、サンドボックス化(エージェントは git worktree 内でユーザー権限により実行されます。適用されるのは各ハーネス固有のサンドボックスのみのため、自律モードは信頼できるリポジトリで使用してください)。

ライセンス

MIT です。LICENSEを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。