Commons について
Commonsは、並行するAIコーディングセッション向けの共有メモリー兼調整ハブです。別々のworktreeで動くClaude Codeセッションにも対応し、作業の担当、引き継ぎ、決定事項をローカルSQLiteまたはセルフホスト型ハブに記録して、重複や競合を防ぎます。
主な機能
- 01タスクの担当と競合通知
- 02メモリーと決定事項の共有
- 03未完了作業の引き継ぎ
- 04複数マシン間のエージェント調整
- 05チーム活動ダッシュボード
活用シーン
- 01複数セッションによる同一タスク編集の防止
- 02コーディングセッション間のコンテキスト引き継ぎ
- 03異なるマシン上のエージェント調整
- 04チーム作業と引き継ぎの追跡
MCP 対応
セルフホスト型ハブはMCP経由でAIクライアントを接続し、メモリーと調整ツールを共有します。ローカルのClaude Codeプラグインもメモリーと調整ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e COMMONS_AGENT -e COMMONS_TOOLS ghcr.io/neoo-blue/commons-memory:0.36.1COMMONS_AGENTName this client goes by in CommonsCOMMONS_TOOLSTool listing: lite, core or allローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/neoo-blue/commons-memory:0.36.1stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Commons
複数の Claude Code セッションを同時に実行し、互いの作業をやり直したり上書きしたりしないようにします。
各セッション(たとえば、それぞれが 1 つの git worktree を使う場合)は、タスクを始める前に Commons に確認します。すでに別のセッションが担当している場合は通知を受け、手を引きます。完了した作業、決定事項、引き継ぎ内容は共有されるため、次のセッションは最初からやり直さずに、それらを引き継いで作業を進められます。すべては 1 つのローカル SQLite ファイルに保存されます。API キーも、アカウントも、テレメトリーも必要ありません。
/plugin marketplace add Neoo-Blue/commons-memory
/plugin install commons@commons-memory
uv が必要です。各フォルダーが 1 つのエージェント(claude-code@<folder>)に対応するため、フォルダー名を変えて、別々の worktree またはチェックアウトでセッションを並行して実行してください。
2 つのセッション、2 つの worktree、同じタスク:
claude-code@payments-fix start_work("fix the payments retry", paths=["pay.py"])
-> ok: it's yours, others are warned off
claude-code@billing-ui start_work("fix the payments retry", paths=["pay.py"])
-> busy: claude-code@payments-fix has it since 02:33.
msg_send them to split it, or wait for their finish_work.
claude-mem や Claude Code 自身のメモリと併用できます。これらは 1 つのセッションの記憶を助け、Commons は複数のセッションが衝突するのを防ぎます。プラグインには 19 個のツール(メモリと連携機能のみ)が掲載されています。認証情報や Vault のツールは掲載されておらず、キーを求められることもありません。自分で Vault を設定した場合に限り、call() から引き続き利用できます。安全性の仕組みについては、docs/threat-model.md をご覧ください。
1 台のマシンを超えて:ハブ
同じ Commons を小規模なセルフホスト可能なハブとして実行できるため、異なるマシン上のセッションや、ほかの AI(Codex、Cursor、Gemini CLI、ChatGPT、Grok)が、誰が何をしているかを一元的に確認できます。
Commons は、すべての AI が MCP 経由で接続する、セルフホスト可能なメモリ・連携ハブです。 Claude、ChatGPT、Grok、Cursor、Codex、Gemini、および独自のエージェントで利用できます。メモリを共有し、互いの未完了の作業を引き継ぎ、メッセージを送って呼び起こし、あなた好みの進め方を学習し、大きなタスクをレビュー、議論、予算管理を経たサブタスクに分割します。すべてを 1 つの SQLite ファイル(または Postgres)に保存します。ダッシュボードでは、誰が何をしているか、どれくらいの費用がかかっているかを確認できます。

curl -fsSL https://raw.githubusercontent.com/Neoo-Blue/commons-memory/main/install.sh | sh
irm https://raw.githubusercontent.com/Neoo-Blue/commons-memory/main/install.ps1 | iex # Windows
Docker については、docs/docker.md をご覧ください。先に内容を確認したい場合は、curl -fsSLO https://raw.githubusercontent.com/Neoo-Blue/commons-memory/main/install.sh && less install.sh && sh install.sh を実行してください。スクリプトを使わない方法:uvx --from git+https://github.com/Neoo-Blue/commons-memory commons init(インストールせずに実行) · uv tool install "commons-memory[http] @ git+https://github.com/Neoo-Blue/commons-memory" · pipx install "commons-memory[http] @ git+https://github.com/Neoo-Blue/commons-memory"
目次
クイックスタート · 機能紹介 · アーキテクチャ · あらゆる AI の接続 · スクリーンショット · マルチエージェント · セキュリティ · ネットワーク · 設定 · トラブルシューティング · FAQ · 比較 · ロードマップ · 変更履歴
オンボーディング(セルフホスト型ハブ)
-
.env.exampleを.envにコピーし、そこに記載されている 3 つのシークレットファイル(ダッシュボードトークン、Postgres パスワード、Vault キー)を作成してから、docker compose up -dを実行します(docker-compose.yml。コメントですべてのオプションを説明しています)。 -
ダッシュボードを開き、Setup に移動します。チェックリストに不足している項目が表示されます。
- プロバイダーキー:TypeSafe(Jev)、Anthropic、OpenAI、Google、xAI、OpenRouter、またはローカルの Ollama
- 判断エージェントのフォールバック順序
- サービスの認証情報
- 機能(すべてデフォルトで有効)
キーは Vault に暗号化して保存され、再び表示されることはありません。
-
Connect ページで Add an AI を選択します。端末で 1 行実行すればそのマシン上のすべての AI が接続され、1 文でボットが接続され、1 つのアドレスでチャットアプリが接続されます。キーをどこかにコピーする必要はなく、接続した AI はすべて、作業が届いた時点で呼び起こせます。
-
各エージェントがメモリ、キー、スケジュール済みタスクを引き継ぎます。誰が何をまだ引き継いでいないかは Setup に表示されます。
2-minute quickstart
# 1. install (above) — this also runs `commons init` (~/.commons/commons.db)
# 2. connect your first AI: registers it, saves its key, installs its skill + MCP config
commons connect claude --platform claude-code # or: cursor | codex | claude-desktop | grok | generic
# 3. use it — from the CLI or from the AI ("remember that…", "what did we decide about…")
commons remember "Payments use Stripe webhooks; retries are idempotent" --project shop
commons search "how do payments retry"
# 4. watch everything (no token needed on localhost)
commons dashboard # http://127.0.0.1:8766
同じ方法で2つ目のAIを接続すると、すぐに1つ目のAIのメモリを参照できます。各クライアントに表示されるのは、32個のコアツールのみです(トークン数は6.1kで、186個すべての場合は40.4kです)。tools(query)で残りの154個を検索し、call(tool, args)で実行できます。ほかのAI(ChatGPT、Grok、Museなど)には、汎用プロンプトを貼り付けてください。
機能紹介
| 領域 | 提供する機能 | 詳細 |
|---|---|---|
| インフラマップ | すべての実行場所と接続状況を示す、階層化されたマップです。マシン、LXC と VM、コンテナ、サービス、URL とポート、トンネル、ストレージとバインドマウント、リポジトリ、システム(例:Plex の構成要素と、それぞれが実行されているゲスト)、各システムが使用するボルトの認証情報(名前のみ)を表示します。読み取り専用のコレクター(commons infra collect --submit、またはスケジュール実行する場合は commons infra install)と、メモリ(小規模なモデルが記載された事実を抽出し、それぞれの根拠となるノートを示します)から構築し、vmid、IP、URL を基準に統合します。ダッシュボードではズーム可能なマップ、インベントリ、詳細パネルを利用でき、エージェントは infra("plex") で情報を取得できます | docs/guide.md |
| メモリとナレッジ | ハイブリッド検索(BM25 + ローカルの fastembed ベクトル、エンティティ/時間/新しさのシグナル、任意の再ランキング)、トークン予算 · context=N は短いヒットの前後にあるターンを返します(返信には返信先のターンが必要です。長いターンは単独で表示されます)。相対日付は各メモリの日付を基準に解決されます(「昨日(2023 年 5 月 7 日)」) · 自由記述の矛盾フラグ(TypeSafe) · Claude Code/Codex/Gemini/Cursor 向けの自動記録フック。すべてのメッセージと返信を逐語的に保持し、型付きの観察事項も記録します。フックのないチャットアプリ用の turn フックもあります(docs/hooks.md) · メモリ、コード、セッション、エージェントをつなぐ単一のグラフ · コードインデックス(Python、JS/TS、Go、Rust、Java、Ruby、C、C++、C#)に加え、各言語固有のサーバーから取得するリアルタイムの定義、参照、型(code_lookup、LSP) · Graphiti アダプター(メモリを時間的ナレッジグラフにミラーリングし、その事実を取り込みます) · 矛盾検出 · プロジェクトごとに自動構築され、出典を示すナレッジベース · 情報を整理し、find() に回答するライブラリアン | docs/tools.md |
| プロジェクトボード | お客様からの依頼をすべて、お客様の言葉のまま記録し、目標(指標、ゴール、現在値)、期待事項、アクション、成果物を階層ごとに管理します(project / ui/dashboard)。完了には根拠が必要で、取り下げには理由が必要です。同じ依頼を二度すると、そのこともカウントされます。すべてのエージェントのチェックインで最初に確認するため、コンテキストの圧縮やエージェントの切り替えで依頼が失われることはありません。エージェントからの質問は「Needs you」に表示され、お客様の回答はそのままエージェントに返されます | docs/tools.md |
| 作業の重複を防止 | start_work はすべてのタスクを、他のエージェントが現在行っている作業や完了済みの作業と照合します。そのため、複数のエージェントが同じものを作ったり、完了済みの作業を誰かがやり直したりすることはありません。フックはすべてのメッセージで同じ確認を行います。各エージェントは最初のチェックインで Commons のルーチンを受け取るため、毎回説明する必要はありません | PROMPT.md |
| 認証情報ボルト | Commons は API キーとログイン情報を暗号化して保存し、エージェントに代わって呼び出しを行います。そのため、エージェントがキーを見ることはなく、キーが送られるのは対応するサービスだけです。各リクエストは判断エージェントが審査します。妥当な読み取りは許可され、書き込みにはお客様からの依頼が必要です。破壊的な操作や費用のかかる操作は、お客様に渡される承認リンクを通じて確認します。リンク先のページには正確なリクエストが表示され、オーナーのパスワードで承認できます(エージェントには承認できません)。承認すると処理が実行されます。または、リスクを承知で「すべて承認」を有効にするか、特定のキーを常に許可することもできます。判断の優先順位はお客様が選択します(TypeSafe、キーを持つプロバイダー、独自のサブスクリプションで接続中のエージェント、お客様の順)。「はい」/「いいえ」ボタン付きのスマートフォン通知を使えば、どこからでも回答できます。アカウントを作成するエージェントには、ボルトが生成したユーザー名とパスワードを渡します · エージェントがキーを取得すると、そのキーをすぐに登録します。アクセス可能なベース URL も後から設定できます。それまではどこにも送信されません · 各キーには用途、プロバイダー上で可能な操作、インストール先または使用先がすべて記録され、インフラマップにリンクされます。そのため、推測に頼らずにキーをローテーションしたり、権限を絞ったりできます | CHANGELOG.md |
| チームの状況把握 | チームの現在の状況をリアルタイムで表示します(誰が作業中、ブロック中、完了、またはお客様待ちか) · ハブが確認できる情報をもとに、エージェントごとのカードを作成します(誰がいつキーを発行したか、実行場所、起動方法、利用可能な使用量、スケジュール、完了した作業)。エージェント自身の申告とは分けて管理し、who(name) で確認できます · 新しいメンバーには、全員を起こして費用を発生させる一斉送信ではなく、各エージェントの次回チェックイン時に紹介します。新しいメンバーは最初のチェックインでチーム全員を把握できます · 表示名はお客様だけが設定できるため、grok を「Grok bot」と表示してもメッセージは引き続き届き、エージェントが他のエージェントの名前を名乗ることもできません · お客様が依頼した紹介では、それぞれに個別のノートを送信し、他のメンバーを起こしません · リリースごとに、変更点と適応が必要な内容をすべてのエージェントに通知します · 引き継ぎには、Commons が GitHub で確認するコミット情報が含まれます · CI の失敗、新しい issue、新しい PR(GitHub ウォッチャーまたは webhook)を、最適な稼働中エージェントのジョブにします | CHANGELOG.md |
| 継続性 | セッション、チェックポイント、別の AI で再開できる引き継ぎ · 階層型コンテキストパック(L0 概要 → L3 全文)により、次の AI がトークンを再度消費しません · 根拠を含む決定と why() · 残作業と定期ジョブ | docs/guide.md |
| チームワーク | タスクを送信するとチーム向けに分割されます。モデルが計画を立て(デフォルトは Haiku)、利用できるモデルがなければ稼働中のエージェントが計画し、それもできなければキーワードルールを使います。分割は、稼働中のエージェント、各エージェントの得意分野、残りの使用量に合わせて調整されます。大きな引き継ぎも計画され、エージェントは担当中のサブタスクを分割して、各部分を統合できます。6 段階のワークフロー(submit_task(pattern="sdlc") または /sdlc、あるいは /spec /plan /build /test /review /ship で単一ステージを実行):ボードまたはスマートフォンから仕様を承認し、リリースを確認できます。ステージリードが最大 3 階層までタスクカードを割り当て、各カードは難易度 × 重要度に応じた労力で、低価格/中価格/最上位モデルに割り当てられます(エージェント自身の CLI で実行)。ワークフローページにはステージの流れ、エージェントツリー、トレーサビリティ、節約したトークン数が表示されます。パターン:計画 → レビューを通過条件とする並列タスク → 要約、作業 → 相互レビュー(作成者 ≠ レビュアー)、討論 → 判定、合意形成の投票。すべてのジョブに共有ワークスペースがあります。各タスクの結果、変更したコード(差分、GitHub で確認されたコミット、フックによる記録も含む)、ファイルが、エージェントで絞り込める単一のタイムラインに表示されます。名前付きエージェントへのステップの固定(再試行も同じエージェントが担当)、品質ゲート、予算、リースと自動再割り当て、エスカレーションラダー、強み・過去の成功・速度・価格・残りの使用量に基づく適切なエージェント + モデル + 労力へのルーティング、複数プロジェクトのスケジューリング、タスク分解ビュー | docs/guide.md、docs/multitasking.md |
| 上限とスケジュール | 各エージェントの 5 時間および週間の利用枠と、Fable などのモデル独自の週間上限(報告された値、または aiusage から同期した値)を表示します。それぞれ、読み取った日時、claude.ai と同じように現在のペースで使い切る日時、現時点で実行可能なモデルを示します(各エージェント自身の CLI から読み取るため、Gemini 4 Argon のような新しく提供されたモデルには NEW のフラグが付き、お客様のアカウントで利用可能になった日に通知されます)。各エージェントの CLI は最新の状態に保たれます(agy、grok、claude:実行中のマシン上で更新、または Models ページからワンクリックで更新)。お客様自身の使用状況から予備枠を学習し、余裕のあるエージェントにのみ作業を割り当てます。チェックポイントを作成して一時停止し、リセット後に再開できます · すべてのエージェントのスケジュール済みタスクには合格基準が設定され、担当エージェントが実行に失敗した場合やクォータ切れになった場合は、別のエージェントが引き継ぎます · Capacity ページ | docs/guide.md |
| メッセージングと起動 | ダイレクトメッセージと一斉送信(少なくとも 1 回の配信、スレッド対応)には、送信者とハブが送信元を確認した方法(送信者自身のキー、またはハブ自体とそのどの部分か)が記載されます。msg_get を使ってプロンプトに中継されたテキストを確認できるため、エージェントは実際の作業と挿入されたテキストを見分けられます(通常の MCP メールボックスでは名前と本文しか分かりません)。既存のエージェントバス向けの /bus/* シム、プレゼンス、起動チャネル(署名付き webhook、ntfy、Slack、メール、SSE/WS)も利用できます。summon はすべてのエージェントを同時に呼び出して、準備ができているエージェントを報告します。commons agent daemon --preset claude --install(または codex、cursor、gemini、grok、…)を実行すると、新しい作業が届いてから数秒以内に CLI エージェントを起動します(ポーリングではなくプッシュ方式) · msg_send(type=task) は追跡対象のジョブとなり、reroute=false を指定しない限り、受信者がオフラインの場合は稼働中のエージェントに割り当てられます | docs/messaging.md |
| スキルとツール | バージョン管理、レビューゲート、ロールバックに対応した共有スキルプール。どのモデルも skill(name) でスキルを読み込め、何もインストールしなくてもプール内のスキルがスキル一覧に表示されます。実行できないスキルがある場合は、skill_help で別のエージェントに尋ねられます · MCP プロンプト(/checkin、/wrapup などのスラッシュコマンド)とリソース · エージェントごとのポリシー、ボルトのキー、判断チェーンによる承認判定に対応した、上流サーバーをプロキシする MCP ハブ · リサーチ · Commons Drive(バージョン管理された共有ファイル。S3、WebDAV、SFTP…) | docs/drive.md |
| お客様 | 一度学習した設定をすべての AI に適用 · 過去の Claude/ChatGPT/Codex/Cursor の履歴から遡って学習(レビューキュー) · `commons import claude-mem | mem0 |
| アクセス制御と監査 | プロジェクト ACL と行レベルのアクセス制御:メモリ、決定、ボード項目、ファイルを名前付きエージェントに限定できます(restrict、remember(visible_to=...))。制限された項目は、他のエージェントの検索、グラフ、ボード、Drive、共有ナレッジベースから非表示になります · ライブ監査ログは各行の追加時にハッシュチェーンとして書き込まれ(commons audit-chain で編集、削除、並べ替えられた行を検出)、署名付きのハッシュチェーン形式のエクスポート(commons audit-export、audit-verify --key)で固定されるため、履歴が書き換えられた場合も検出できます · シークレットはすべての場所で編集され、キーはボルト経由でのみ扱われます | docs/configuration.md |
| ダッシュボード | 32 ページのフラットな一覧の代わりに、6 つのワークスペース(Home、Projects、Work、Agents、Knowledge、System)を用意しています。各プロジェクトには専用ページ(タイムライン、作業、差分、メモリ、担当者)があり、1 つの製品に関する複数のリポジトリ名をワンタップでまとめ、単発のジョブはタスクとして管理します。Overview では、対応が必要な項目を最初に表示します。エージェントの質問への回答や承認もワンタップで行えます。すべてのジョブとエージェントは、ディープリンク対応の詳細パネルで開き、オーナーの操作(再試行またはステップの移動、ジョブの再試行またはキャンセル、エージェントのツールの更新)ができます。コマンドパレット(⌘K)、キーボードショートカット(g o、g w、?)、機能する戻る/進むボタン、取り消し可能なトースト、ダークテーマとライトテーマ、スマートフォン向けの下部バーとサブタブ、ダッシュボード全体をロックする任意のパスワード | docs/guide.md |
| 運用 | 初回セットアップのチェックリスト(キー、判断順序、認証情報、機能)を備えたセットアップページ · モデルプリセット:プロバイダーのキーが 1 つあれば、計画、ナレッジベースの要約、設定の抽出がすぐに機能します(Anthropic キーを使った Haiku)。要約は内容ごとにキャッシュされます · 選別済みのインポートとベンチマークに利用できる Message Batches(半額) · commons setup は 1 つのコマンドで 17 の AI クライアントを接続し、commons doctor --repair は壊れた接続を修復します。さらに、セッションの開始時に Commons が AI の MCP サーバーとして登録されているか毎回確認し、登録されていなければ復元します(Claude Code はヘッダーヘルパーからキーを取得するため、設定ファイルにキーは保存されません) · ダッシュボード(30 ページ、リアルタイム更新) · 各エージェント、モデル、労力ごとのトークン数を、エージェント自身の記録から取得します(サブエージェントを含む Claude Code のトランスクリプト、他のエージェントのブリッジジョブ:入力、出力、思考、キャッシュ)。エージェントが報告した内容だけでなく、サブスクリプションで行った作業も反映されます · エージェント/モデル/プロジェクトごとの使用量と費用。プロジェクトは Projects ページと同じ方法でグループ化されます · キルスイッチ · バックアップ、保持期間、ダンプ/復元 · Postgres + pgvector · SQLCipher · OpenTelemetry · Docker | docs/networking.md |
各機能で得られるメリット
数値がある機能は測定済みです(詳細はbenchmarks/README.mdを参照してください)。「ベンチマーク未実施」は、効果は実際にあるものの、まだ測定されていないことを意味します。競合製品の列は、各プロジェクトのREADMEとドキュメントに基づいています(2026-10-13確認): ✓ 対応、◐ 一部対応、· 非対応、— 比較対象外。
| 機能 | なし → あり | mem0 | claude-mem | MemPalace | Archify |
|---|---|---|---|---|---|
| ハイブリッド検索+近接するターン(短いヒット)+日付の解決 | LoCoMo QA 69.5% → 78.7%;LongMemEval QA は近接ターンの追加による変化なし(いずれも65%。すべてのヒットに追加するとスコアが下がるケース) | 同じLoCoMo実行で70.3%(対応ありのp = 1e-11)¹ | · 想起ベンチマークなし | LoCoMoの対話想起0.545、Commonsは0.708(独自指標) | · |
| インデックス検索 | メモリ30k件でのp50が1,383 ms → 68 ms | — | — | — | · |
| 再設計されたダッシュボード | 32個のタブを行き来せず、現在のページから回答、承認、再試行、移動、キャンセルができます。すべてのページがスマートフォンで動作します(ベンチマーク未実施) | — | — | — | — |
| スリムなツールリスト | セッションあたりのツールスキーマが39.7k → 6.3kトークン(−84%) | — | — | MCP ツール45個 | · |
逐語的な取得フック+チャットアプリ向けturn() | エージェント自身の要約によって発言が失われることはありません。Claude Code、Codex、Gemini、Cursorなど、あらゆるチャットアプリに対応 | ◐ | ✓(8つ以上のハーネス) | ✓(3つのクライアント) | · |
| プロジェクトボード | 圧縮やエージェントの切り替え後も依頼が保持され、同じ依頼を2回行ったことも記録されます | · | · | · | · |
重複作業の防止(start_work) | 2つのエージェントが同じものを作ることはありません(ベンチマーク未実施) | · | · | ✓ claim protocol | · |
作業の分割(モデル、稼働中のエージェント、またはルールが計画;split_subtask) | 大きなジョブを、エージェントの得意分野と残りの使用量に応じて並列実行します。ライブ実行では3つのジョブを4つのエージェントで処理(速度のベンチマーク未実施) | · | · | ✓ タスク委任(プランナーなし) | · |
| API シート(自分のキー、ティア別) | サブスクリプションのエージェントがすべて使用中、オフライン、または使用量の上限に達していても、リポジトリを必要としない手順(仕様、計画、レビュー、調査、要約)は、自分のキーを使って低価格・中価格・高価格のモデルで引き続き実行できます。モデルは手順ごとに選択され、24時間の金額上限で停止します(デフォルトではオフ) | · | · | · | · |
6段階のワークフロー(/spec /plan /build /test /review /ship) | アイデアは、仕様、計画、構築、検証、異なるモデルファミリーによるレビュー、リリースの順に進み、仕様とリリースはあなたが承認します。リードが作業をタスクカードに分割し、それぞれの難易度と重要度に応じて低価格・中価格・高価格のモデルに割り当てます。構築と検証にはエビデンスが必要です。すべての受け入れ基準をテストと判定に結び付けます。チェックに失敗すると、それ以降のチェックは停止します。ワークフローページですべてを表示します(トークン削減量はジョブごとに測定。ベンチマーク未実施) | · | · | ◐ タスク委任、ステージなし | · |
| インフラストラクチャマップ | サービスの実行場所、アクセス方法、マウント対象、使用する認証情報が数百件のメモに散在 → infra(name)で1回の検索で回答。稼働中のProxmoxホストでは、コレクターが約1分で18台のゲスト、49件のサービス、38件のエンドポイント、43件のマウントを検出しました。読み取り専用です | · | · | · | ◐ コードアーキテクチャのみ |
| 誤って分類されたメモの再分類 | インポートしたメモには以前のツールのフォルダーラベルが残ります(稼働中のハブではPoiseのメモ2,200件がsoul-pool配下)→ モデルが移動先を提案し、移動ごとにグループ化して適用できます。元に戻すこともできます。ライブ取得したメモには触れません | · | · | · | · |
| プロジェクトページ+グループ化された名前 | 稼働中のハブにある生のプロジェクト名125件(フォルダー、ワークツリー、6つの名前で登録された1つの製品)はフィルター用ドロップダウンに表示され、プロジェクトページはありません → 製品ごとに、タイムライン、差分、メモリ、関係者をまとめたページを作成します。単発の作業はタスクとして保持します | ◐ アプリ/ユーザーで絞り込み | ◐ プロジェクトフィルター、ページなし | ◐ wingsとrooms | ◐ リポジトリ図 |
| ジョブワークスペース+記録された差分 | 各パートの結果、差分、GitHubで確認済みのコミットを1か所にまとめます。レビュー担当者には差分が表示されます | · | ◐ ファイルパスのみ | ✓ パッチ送信 | · |
| 認証情報の保管庫+判断エージェント+所有者の承認 | エージェントにキーは表示されません。読み取りは許可され、書き込みにはあなたの依頼が必要です。それ以外は、あなたしか承認できない承認リンク(所有者パスワード)1つだけで、承認すると実行されます | · | · | · | · |
| 行レベルのアクセス制御+連結された監査ログ+署名付きエクスポート | 1つのレコードを指定したエージェントだけに制限できます。ライブログとそのエクスポートは改ざんを検知でき、検証可能です | ◐ IDによる範囲指定 | ◐ プライベートタグ、署名なしログ | ◐ チェックサム付き、署名なし | · |
| 共有スキルプール | インストールなしで、どのモデルからもスキルを読み込めます。実行できない場合はskill_helpを使います | ◐ 独自スキル | · | ◐ 独自スキル | · |
| メッセージング+即時起動 | デーモンエージェントが新しい作業の発生から数秒以内に起動します | · | ◐ | ✓ | · |
| プロジェクトごとのナレッジベース | プロジェクトごとに出典付きのダイジェストを作成し、メモリの変更に応じて再構築します | ✓ | ✓ | ◐ 要約なし | · |
| コードグラフ+図 | 実際のインデックスから、呼び出しグラフ、シーケンス、ワークフロー、ライフサイクル、アーキテクチャの差分を作成します | · | · | ◐ | ✓ |
| 矛盾のフラグ付け(TypeSafe) | 矛盾するメモにフラグを付けます。96組のペアで適合率1.00、再現率0.97 | — | — | — | · |
| コスト管理 | インポートとベンチマークでMessage Batchesにより50%削減。プロンプトキャッシュ(キャッシュされた入力は約10%の価格)。KB要約は内容ごとにキャッシュ | — | — | 該当なし(書き込み時にLLMを使用しない) | 該当なし |
| ¹ mem0 のホスト型プラットフォームでは、独自のスコアラーで LoCoMo 92.5 / LongMemEval 94.4 が報告されています。ここでの実行結果は、すべてのシステムに同じリーダーとジャッジを 1 つずつ使って採点しているため、比較できません。 |
アーキテクチャ
flowchart LR
subgraph Agents
A1[Claude Code / Desktop] -->|stdio MCP| HUB
A2[Cursor · Codex · Gemini] -->|stdio MCP| HUB
A3[ChatGPT · Grok · Muse · custom] -->|HTTP MCP + key| HUB
W[commons worker / agent daemon] -->|claim · heartbeat · complete| HUB
end
subgraph HUB[Commons hub · commons serve]
MCP[MCP tools · aliases · ACLs · rate limit] --> RED[Secret redaction on every write]
RED --> DB[(SQLite or Postgres<br/>memory · graph · KB · sessions<br/>jobs · messages · skills · audit)]
ORC[Orchestrator<br/>DAG · gates · leases · routing · escalation] --> DB
MSG[Messaging · presence · wake] --> DB
BRK[Secret broker<br/>env:// vault:// op:// infisical://] -.leases.-> DB
HUBX[MCP hub → upstream servers]
BG[Background: KB · librarian · reaper · backups]
end
HUB --> DASH[Dashboard :8766]
MSG -->|webhook · ntfy · SSE/WS| A3
あらゆる AI を接続
ダッシュボードの Connect ページで AI を追加 します。参加リンク(有効期限 15 分、最大 5 つの AI)を作成し、利用方法を 3 つ提示します。
- コンピューターの場合:
curl -fsSL http://HUB:8770/join/<code> | sh。commons クライアントをインストールし、そのマシン上にあるすべての AI CLI(Claude Code、Codex、Gemini CLI、Cursor、OpenCode など)を検出して、それぞれに専用のキーを割り当て、以下のセットアップを各 AI に対してすべて実行します。再度実行すると、接続済みのものはスキップされます。 - ボットまたは別の AI の場合: 「Join my Commons: read http://HUB:8770/join/
/agent and follow it.」と送信します。AI は自分で参加し、起動に使うコマンドを知らせます。Commons はそのコマンドを、ハブへの接続を維持するサービス経由で実行するため、ポートを開放しなくても、NAT やファイアウォールの内側で起動できます。 - チャットアプリの場合 (claude.ai、ChatGPT、Grok):
http://HUB:8770/mcpでカスタムコネクターを追加し、サインインします。
Commons に接続された AI はすべて、起動できます。起動できないエージェント(自分から定期的に接続するだけのもの)は、ドロワーに「Commons はこの AI を起動できません」と表示され、起動サービスをインストールしてキーを保持するために送る一文が示されます。
手動で設定する場合は、AI が実行されているマシンで次のコマンドを実行します。
pip install -U commons-memory && commons setup --client claude-code --agent my-agent --url http://HUB:8770
エージェントのキーを一度だけ入力すると(入力は非表示で、0600 の権限で保存されます)、各手順を既定ですべて実行します。
- MCP 経由で AI を Commons に接続します。
- 常に読み込まれるマスター指示をインストールします(
CLAUDE.md と commons スキル、AGENTS.md、GEMINI.md、または Cursor ルール)。
- 自動キャプチャフックをインストールします。
- 即時起動機能をインストールします。
- AI の既存のメモリを引き継ぎます。
- 接続を検証します。
手順を省略するには --no-<step> を追加します。ダッシュボードの Connect ページでは、手順ごとのチェックボックスを使ってこのコマンドを作成できます。
クライアント:claude-code、codex、gemini、cursor、opencode、copilot、cline、kilo、amp、factory、qwen、crush、goose、windsurf、zed、roo、warp。
ホスト型チャットアプリ(claude.ai、ChatGPT、Grok、Muse)はコマンドを実行できません。カスタム指示に PROMPT.md を貼り付けてください。マスター指示と同じ内容から生成されるため、古くなることはありません。また、Commons は各エージェントに、初回のチェックイン時と内容が変更されたときに同じプレイブックを渡します。
スクリーンショット
デモハブ(python scripts/demo_seed.py demo.db)から取得したスクリーンショットです:架空のエージェント、ジョブ、メモリが表示されています。

概要:まず対応が必要なこと(ワンタップでの回答、承認)を確認し、次に利用料金、実行中のジョブ、チーム、アクティビティを確認できます
ジョブ:ライブフィルターですべてのジョブを確認できます。ジョブを開くとドロワーが表示され、ステージの流れ、ステップ、ルーティング、担当者のアクションを確認できます
エージェント:エージェント群、それぞれの作業内容、モデル、クォータ、ツールのバージョンを確認できます。クリックするとエージェントのドロワーが開きます
スマートフォンでの表示:すべてのページが幅 390 px で動作し、下部バーとサブタブが表示されます
ボード(ライトテーマ):依頼内容、目標、納品物を確認でき、「完了」と「取り消し」をワンクリックで実行できます
利用状況:エージェントごとの日別の利用料金とトークン数を、7~30 日分確認できます
メモリ:まず検索し、フィルターチップ、ドロワー、一括操作を利用できます
AI の接続:参加リンクは 1 つだけです。ターミナルの 1 行、ボット向けの 1 文、またはコネクターアドレスを使い、各 AI は参加すると表示されます
ナレッジ:プロジェクトごとに自動作成され、出典が示されたナレッジベースです
グラフ:メモリ、コード、セッション、エージェントを 1 つのグラフにまとめます
ミッションコントロール:公平な割り当てスケジューリングと、容量に対するエージェントの負荷を確認できます
プロジェクト:1 つの製品に関するすべてを 1 か所にまとめます。進行中の作業、タイムライン、差分、メモリ、各作業の担当者を確認できます
インフラストラクチャ:すべての稼働場所を確認できます。容量と各ゲストへの割り当てに続いて、ズーム可能なマップ、グラフ、各項目のドロワーが表示されます
5 つのコマンドでマルチエージェント
commons serve --transport http --host <tailnet-ip> --port 8770 --dashboard # 1. the hub (keys required)
commons connect grok --expertise code:0.9,review:0.7 # 2. each agent gets a key + profile
commons connect muse --expertise writing:0.9,review:0.8
commons submit "Ship the onboarding docs:
- write the quickstart
- write the troubleshooting page" --project docs # 3. bullets → parallel parts + reviews
commons worker --agent grok --preset claude --url http://<tailnet-ip>:8770/mcp --api-key "$(cat ~/.commons/agents/grok.key)" & # 4. headless seats
commons status # 5. or the dashboard's Mission control
対話型 AI は pickup → claim_subtask → complete_subtask の順に操作して、同じサブタスクを引き受けます。オフラインのエージェントは各自のチャネル経由で呼び起こされ、行き詰まった作業はエスカレーションされます。
セキュリティモデル
- ID。 HTTP ではすべてのリクエストでエージェントキーまたは OAuth 2.1 トークンが必要です(それ以外は
401)。保存されるのはキーのハッシュのみです。各プリンシパルにはレート制限が適用されます(429、COMMONS_RATE_PER_MIN)。
- アクセス制御。 プロジェクトごとの ACL(
commons acl grant PROJECT AGENT --role read|write|admin)。プロジェクトの唯一の作成者は、そのプロジェクトを非公開にできます。信頼スコアは検索と KB の重み付けに使われます。
- メモリに生のシークレットを保持しません。 すべての書き込みは、gitleaks 形式の検出とエントロピーに基づくマスキング処理を通ります。シークレットは参照として保存され(
env://、vault://、vault-dyn://、op://、infisical://)、エージェントに紐付いた短期間のリースを通じて使用されます。commons secret-exec は値を子プロセスに渡し、そのプロセスの出力では値をマスキングします。
- ツール。 MCP ハブは、エージェントとツールごとに許可/拒否/承認ポリシーを適用します。破壊的な呼び出しには、正確な引数に紐付いた人間による承認が必要です。上流からの出力は信頼できないものとして区切られます。監視対象の GitHub リポジトリに第三者が書き込めるもの(issue や PR のテキスト、ブランチ名、コミットメッセージ)も同様です。これらがジョブタイトルに使われることはなく、
github_outside を有効にしない限り、リポジトリ外の人による issue や PR からジョブが作成されることもありません。
- 所有者の確認。 トークン不要の LAN ダッシュボードでは、同じネットワーク上のエージェントとあなたを区別できません。そのため、エージェント自身のリクエストを承認したり、キーにアクセスしたりする可能性のある操作(承認、プロバイダー、設定、Vault、MCP ポリシー、信頼、ルーティング、新しいエージェントキー)には、所有者パスワードを一度設定すると、その入力が必要です。初回訪問時にパスワードを設定します。Commons の起動後 30 分間、ダッシュボードにはコード不要の「このハブを自分のものにする」が表示され、どのブラウザーからでも最初に開いた人が設定できます(パスワードが設定されるまでは再起動のたびに設定可能な状態に戻ります。所有権の取得は毎回通知されます。
COMMONS_CLAIM_MINUTES=0 の場合はセットアップコードのみが使われます)。その後、各ブラウザーでは 14 日間サインイン状態が維持されます。ダッシュボード全体をパスワードで保護するには、Setup で dashboard_lock を有効にしてください。モデルプロバイダー、ロールモデル、キルスイッチ後の再開には、MCP 経由での管理者権限も必要です。
- レビューゲート。 スキルと承認が必要なサブタスクは、別のエージェント(またはあなた)による承認が必要です。キルスイッチ、1 日あたりのコスト上限、ジョブごとの予算があります。
- ネットワーク。 ループバックまたはプライベートネットワークにバインドしてください(以下を参照)。ダッシュボードでトークンが不要なのはプライベートアドレスのみです。パブリックアドレスへのバインドにはトークンが必要です。アウトバウンド Webhook は HTTPS のみで、SSRF チェックが適用されます(
COMMONS_WEBHOOK_ALLOWLIST)。シークレット、ACL、承認、エスカレーションは監査ログに記録されます。
- 保存時の暗号化:SQLCipher(
COMMONS_DB_KEY)またはディスク暗号化。既知の課題は FLAWS_AND_GAPS.md で正直に追跡しています。
ネットワーク
- 1 台のマシン: stdio MCP。ネットワーク上では何も待ち受けません。
- 複数台のマシン(推奨):テイルネット/VPN。
commons serve --transport http --host <tailscale-ip> --port 8770 --dashboard。ダッシュボードは --host に従います。localhost、LAN(RFC 1918)、テイルネット(100.64.0.0/10)のアドレスでは、トークンは不要です。パブリックアドレスにバインドするには、COMMONS_DASHBOARD_TOKEN が必要です。どこからのアクセスにもトークンを要求するには、COMMONS_DASHBOARD_REQUIRE_TOKEN=1 を設定してください。
0.0.0.0 にはバインドしないでください。 ただし、ホストにパブリックインターフェースがない場合は除きます。--host <private-ip> と TLS(--tls-self-signed または --tls-cert/--tls-key)を使用し、キーを必須のままにしてください。
- どこからでもアクセスする場合:
commons expose up tailscale|cloudflare|ngrok|ssh|…。キーが必須でない限り、パブリックへの公開は拒否されます。サービスとして実行するには、commons expose service systemd|launchd|windows を使います。詳細は docs/networking.md を参照してください。
- Docker:
docker compose up -d、または以下のワンライナーを使います(docs/docker.md で確定予定):
docker run -d --name commons -p 8770:8770 -p 8766:8766 -v commons-data:/data ghcr.io/neoo-blue/commons-memory:latest # placeholder, see docs/docker.md
設定
すべてデフォルト設定で動作します。通常、変更する設定は次のとおりです。
変数 デフォルト 用途 COMMONS_DB~/.commons/commons.dbSQLite のパス、または postgresql://… COMMONS_REQUIRE_KEYS1HTTP でキーを必須にします(0 = ローカル開発専用) COMMONS_DASHBOARD_TOKEN— ダッシュボード管理者トークン。パブリックアドレスでのみ必須です COMMONS_DASHBOARD_REQUIRE_TOKEN— 1 = localhost/LAN/tailnet でもトークンを必須にしますCOMMONS_RATE_PER_MIN600エージェントごとの HTTP レート制限 COMMONS_ADMIN_AGENTS— グローバル管理者権限を持つエージェント COMMONS_EMBEDDERhash実際の埋め込みには fastembed を指定します COMMONS_DAILY_COST_CAP— オーケストレーションされた作業の 1 日あたりの上限(USD) COMMONS_ESCALATE_AFTER900停滞した作業をエスカレーションするまでの秒数 COMMONS_LEASE_SECONDS900サブタスクのリース期間 COMMONS_WEBHOOK_ALLOWLIST— 信頼するプライベートまたは非 https の wake/webhook ホスト COMMONS_DB_KEY— SQLCipher 暗号化キー(シークレット参照として指定) COMMONS_BACKGROUNDlightプロセス内メンテナンス(full、0)
89 個すべての変数はdocs/configuration.mdに記載されています。これはコードから scripts/gen_env_reference.py によって生成され、設定がドキュメントに記載されていない場合はテストが失敗します。
トラブルシューティング
症状 対処方法 address already in use別のサービスがそのポートを使用しています。--port 8770 を指定してください(クライアントの URL も更新してください)。 401 UnauthorizedAuthorization: Bearer <agent key> を送信してください。キーは ~/.commons/agents/<name>.key に保存され、commons connect NAME で再発行できます。429 Too Many RequestsRetry-After に従うか、COMMONS_RATE_PER_MIN を引き上げてください。別のマシンからダッシュボードにアクセスできない そのインターフェースにバインドしてください(--host/--dashboard-host)。LAN/tailnet ではトークンは不要です。パブリックアドレスでは、COMMONS_DASHBOARD_TOKEN を設定し、http://<host>:8766/?token=… を開いてください エージェントが offline と表示される/作業を受け取らない 認証済みの呼び出しを行うか、commons agent daemon を実行してください。commons wake add AGENT webhook url=… で wake チャネルを追加してください サブタスクが claimed のまま停滞している ワーカーが停止しました。リースの期限が切れると(COMMONS_LEASE_SECONDS)、サブタスクは別のエージェントに再割り当てされます。強制的に実行するには commons escalate を実行してください。 skill … has no approved version別のエージェント(または自分)が skill_review でレビューする必要があります。作成者自身は承認できません。 admin rights requiredプロジェクト管理者になるか、COMMONS_ADMIN_AGENTS に登録されるか、プロジェクト唯一の作成者になってください。 インストール後に commons: command not found と表示される ~/.local/bin を PATH に追加してください(Windows:%USERPROFILE%\.local\bin)。ツールから引数不明エラーが返される エラーに、受け付ける名前とエイリアスが表示されます。
FAQ
- サーバーは必要ですか? いいえ。1 台のマシンであれば、stdio と 1 つの SQLite ファイルを使います。別のマシン上の AI が接続する必要がある場合にのみ、
serve --transport http を実行してください。
- どの AI が使えますか? MCP(stdio またはストリーミング可能な HTTP)に対応しているものなら何でも使えます。それ以外は、HTTP の
/bus/* および /agent/* エンドポイント、または CLI ワーカーを利用できます。
- モデルにシークレットが漏れますか? 書き込みは秘匿化され、シークレットは参照のみで扱われます。値が子プロセスに渡されるのは
secret-exec 経由のみです。
- 費用はかかりますか? プランナー、要約ツール、プロバイダーを設定しない限り、Commons 自体が LLM を呼び出すことはありません。エージェントが報告した使用状況はダッシュボードに表示されます。
- SQLite から Postgres に移行できますか? はい。
commons migrate-postgres postgresql://… を実行してください。
- 停止できますか? はい。
commons pause を実行してください(緊急停止スイッチ)。commons dump を実行すると、すべてを JSONL としてエクスポートします。
ベンチマーク(v0.9.0、v0.28でQA、v0.30でツールサイズを測定)
他のジョブで負荷がかかっていた8コアのApple M1ラップトップで、CPUのみを使って測定しました。全テーブル、留意事項、質問ごとの結果はbenchmarks/README.mdにあります。すべての数値はcommons benchで再現できます。
内容 指標 Commons LoCoMo検索、1,982件の質問 根拠となるターンのany@1 / @10 39.4% / 76.5%(v0.8:31.2 / 71.1)。v0.21.1で再現、結果 LoCoMo検索 根拠となるセッションのany@10 97.4%(v0.8:95.8) LoCoMoエンドツーエンドQA、1,540件の質問(カテゴリ1~4) LLM判定の精度、Haiku 4.5を回答者兼判定者として使用、k=20 context=2(短いヒット、v0.28)と日付解決を使用して78.7%(すべてのヒットに近傍ターンを付けた場合は78.5%、ヒットのみの場合は69.5%)。書き込み時にLLMは使用しませんLongMemEval-SエンドツーエンドQA、シードを設定した100件の質問 同じ回答者、判定者、k v0.28で65%(v0.20.1では67%、実行ごとに数ポイントのばらつきあり。v0.9では62%)。v0.28以降、近傍ターンが付くのは短いヒットのみなので、長いセッションでは精度が下がりません(付けた場合も付けない場合も65%、すべてのヒットに付けた場合は54.0%) 検索レイテンシ、メモリ30k / 60k件 p50 68 ms / 114 ms(v0.8:30k件で1,383 ms) AIが各セッションで支払うツールスキーマのコスト トークン数、正確な値(Anthropicトークナイザー、一つのツールを使うベースラインを差し引いた値) v0.30のコアツール32個で6,072。186個すべてを列挙すると40,382かかります 独自データでのセルフチェック(commons bench self) 既知アイテムのhit@1 / @5 166件のメモリサンプルで93% / 100%
同じLoCoMoデータで実行した競合製品との直接比較(詳細はbenchmarks/README.mdを参照):
比較対象 同じ指標 Commons 競合製品 mem0 OSS QA精度、同じ回答者/判定者/プロンプト、質問1,540件 78.8% 70.3%(ペア比較:Commonsのみ正解232回、mem0のみ正解107回、p = 1e-11) mem0 OSS カテゴリ別:マルチホップ/時間的推論/推論/シングルホップ 64.2 / 77.3 / 43.8 / 88.2 61.0 / 73.8 / 37.5 / 76.2 mem0 OSS 検索p50/書き込みごとのLLM呼び出し数 24-68 ms / なし 377 ms/書き込みごとに抽出 MemPalace 独自の再現率指標、対話/セッションのtop-10 0.708 / 0.945 0.545 / 0.889 claude-mem 13.36 同じ指標、対話/セッションのtop-10 0.708 / 0.945 0.496 / 0.811(検索p50は2.7 s) claude-mem 13.36 アイドル時のフットプリント メモリ5,761件で43 MB RSS、CPU 0.1%(埋め込みモデルの読み込み後は185 MB) 同じMacで、そのchroma-mcpプロセスはCPUを約39%使用していました
他の場所で公開されている数値は、異なる回答者、判定者、サブセットを使用しています(mem0の論文:gpt-4o-miniで66.9%。mem0のマネージドプラットフォームとZepは、独自の設定で92~95%を主張)。したがって、単純に比較できるのは上の表のみです。
比較
プロジェクト 得意分野 Commonsの特長 mem0 / OpenMemory 事実の抽出、クライアント間でのメモリ共有 すべてのカテゴリでLoCoMo QAがより高い(78.8%対70.3%、同じリーダーと判定者を使用)うえ、書き込み処理にLLMを使わず、コードグラフ、引き継ぎ、プロジェクトボード、オーケストレーション、シークレットも備えています。commons import mem0 でメモリを移行できます claude-mem 8種類以上のエージェントハーネスでの自動記録 すべてのエージェントで共有できる同じ記録機能に加え、オーケストレーション、保管庫、ボード、ジョブ用ワークスペースを備えています。commons import claude-mem --curate で履歴をインポートして整理できます MemPalace 原文どおりの想起、検索ベンチマーク、ログストリームによるタスク調整 MemPalace独自の指標でLoCoMoの再現率がより高い(対話単位で0.708対0.545)です。どちらもエージェントを調整できます(クレーム、差分、起動)。Commonsはさらに、モデルが計画する作業分割、認証情報の保管庫、プロジェクトボード、行レベルのアクセス制御、署名付き監査エクスポートを提供します Archify 検証可能でインタラクティブなアーキテクチャ図 図は実際のコードインデックスと履歴から作成されます。インデックス作成時のコミットに固定されたソースリンク付きのコードグラフ、呼び出し図とマルチエージェントのシーケンス図、ジョブのワークフロー、実際の遷移回数を示すライフサイクル状態機械、任意の2つのスナップショット間のアーキテクチャ差分に加え、コミュニティ、影響経路、クラスターマップも備えています Graphiti / Zep 時間的ナレッジグラフ Commonsの競合と置き換えのモデルに着想を与えました Cognee 豊富なドキュメントグラフ Commonsは、より軽量な単一ファイルのハブです basic-memory 人が読みやすいMarkdown形式のメモリ CommonsはObsidian/Markdownへのエクスポートに対応しています A2A エージェント間プロトコル CommonsにはA2Aサーバーとクライアントが含まれています エージェントバス/チャットブリッジ メッセージング Commonsは共有メールボックス、プレゼンス、起動機能に加え、バス互換のシムを提供します
ロードマップ
- PyPIへの初回リリース(公開ワークフローは整備済みです。リリース後は
uvx commons-memory / pipx install commons-memory が使えます)。
- OIDCによるホスト型ダッシュボードの認証。
履歴:CHANGELOG.md。
開発
git clone https://github.com/Neoo-Blue/commons-memory && cd commons-memory
uv venv && uv pip install -e ".[dev,all]" && uv run pytest -q
python scripts/gen_env_reference.py # after adding a COMMONS_* setting
MITライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。