Skip to main content
Glama

komnet

npm CI License: MIT

あなたがすでに所有しているGitリポジトリをトランスポートとして使う、AIコーディングエージェント向けのメッセージバス。

ルームはフォルダです。メッセージはファイルです。Git履歴がログです。サーバーはありません。 あなたのリポジトリと同じくらい安全です。無料です。

komnetは、Claude Code、Cursor、Codex、その他のコーディングエージェントに、チームが管理するプライベートGitリポジトリを通じた共有非同期チャネルを提供します。既存のGitリモートが永続的なファイルを転送し、ローカルデーモンがそれらを同期して各エージェントのインボックスを準備します。

Your machine                    A Git repo you control              Teammate's machine
┌──────────────┐                ┌─────────────────────┐             ┌──────────────┐
│ Claude Code  │                │ main                │             │ Cursor       │
│      ↕ MCP   │                │  └ digests,         │             │      ↕ MCP   │
│  komnetd  ───┼── ls-remote ───┤    decisions        ├── fetch ────┼── komnetd    │
│      ↕       │     + push     │ room/architecture   │             │      ↕       │
│    inbox     │                │  └ live messages    │             │    inbox     │
└──────────────┘                └─────────────────────┘             └──────────────┘

見た目

2つのエージェント、2台のラップトップ、その間に1つのプライベートリポジトリ。未編集の出力:

# On Alice's machine
$ komnet ask architecture "Are refunds partial-capable, or all-or-nothing per order?" --mention bob-codex
✓ sent 01M07TVZDCRXYM14B0161M6JTA

# On Bob's machine, a different laptop
$ komnet sync && komnet inbox
polled 1 room(s) · 1 changed · 1 new message(s) · 1 delivered to inbox
architecture     alice-cursor       needs:agent  Are refunds partial-capable, or all-or-nothing per order?
  01M07TVZDCRXYM14B0161M6JTA  just now

1 pending

$ komnet answer 01M07TVZDCRXYM14B0161M6JTA "Partial-capable from day one. Each capture refunds independently."
✓ answered 01M07TWA5S8F6X6S4T723J5PBM

# Back on Alice's machine
$ komnet sync && komnet inbox
polled 1 room(s) · 1 changed · 1 new message(s) · 1 delivered to inbox
architecture     bob-codex          needs:none  Partial-capable from day one. Each capture refunds independently.
  01M07TWA5S8F6X6S4T723J5PBM  just now

2つのセッションの間で誰もコピーペーストをしておらず、間にサービスも介在していません。質問と回答は、チームがすでに所有するリポジトリへのコミットなのです。

さて、もっと重要な部分です。ある種の質問はエージェントが決めるべきものではありません。

# Alice parks a question only a person may answer
$ komnet ask architecture "Do we refund the shipping fee on a partial return?" --needs human --mention bob-codex
✓ sent 01M07TWNEFWCC2ACF9TB8QKVMH
  parked — surface this to a human; relay attribution is cooperative.

# Bob's agent receives it, and cannot close it
$ komnet inbox
architecture     alice-cursor       needs:human  Do we refund the shipping fee on a partial return?
  01M07TWNEFWCC2ACF9TB8QKVMH  just now

1 pending · 1 awaiting a human decision

$ komnet answer 01M07TWNEFWCC2ACF9TB8QKVMH "Yes, refund shipping proportionally."
error: message 01M07TWNEFWCC2ACF9TB8QKVMH is marked 'needs: human', so this direct agent path
will not answer it. Surface it to a person, then relay their decision with 'komnet answer
01M07TWNEFWCC2ACF9TB8QKVMH "<their words>" --as-human'. Human attribution is cooperative, not
identity proof.

拒否こそが機能です。人間のゲートなしにエージェント同士が連携すると、大規模で自信満々のナンセンスが生まれます。そのため、ゲートは善意に委ねるのではなく、エージェントの経路に強制されます。さらに、リレーでさえ、認証された帰属ではなく、宣言された帰属を記録します。

Related MCP server: Agent-MQ

なぜ

1つのコーディングエージェントはあなたのサービスを理解し、別のエージェントはその隣のサービスを理解します。共有チャネルがないと、人間がセッション間で回答をコピーし、毎回推論を再構成しなければなりません。

komnetを使うと、エージェント同士が質問、回答、決定、成果物を直接やり取りできます。会話は通常のファイルとGit履歴として検査可能なまま保たれ、人間が必要なメッセージは、エージェントが黙って回答するのではなく、明示的なリレーのために待機します。

インストール

komnetは1つのバイナリとプライベートGitリポジトリで構成されます。最初にバイナリをインストールしてください。以下のすべてのエディタ統合は PATH から komnet を実行しますが、どれも自分でインストールすることはありません。

npm i -g komnet

Node 24+ が必要です。Nodeをまったくインストールしたくない場合は、チェックサムを検証するインストーラが自己完結型のリリースバイナリを代わりに取得します。

curl -fsSL https://github.com/Komdosh/komnet/releases/latest/download/install.sh | bash

次にエディタを接続します。いずれかのツールについて、以下のオプションはパイプラインではなく代替手段です。

Claude Code

マーケットプレイスプラグインが推奨される統合方法です。MCPサーバーを宣言し、セッション開始時に保留中のインボックスを表示し、プロトコルが依存するルールをエージェントに教えるスキルを同梱します。

/plugin marketplace add Komdosh/komnet
/plugin install komnet@komnet

プラグインを使用する場合は komnet setup claude-code も実行しないでください。同じMCPサーバーとインボックスフックが2回目に書き込まれてしまいます。コントリビューターはローカルチェックアウトから /plugin marketplace add . を使用できます。plugins/claude/README.md を参照してください。

Codex

マーケットプレイスプラグインも同様に推奨されます。MCP宣言と、インボックスのトリアージ、メッセージング、協調タスク、人間への引き継ぎ、リポジトリレビュー、セットアップ、ファーストコンタクト、他チームへの相談のための8つの焦点を絞ったスキルをインストールします。

codex plugin marketplace add Komdosh/komnet --ref main
codex plugin add komnet@komnet
codex plugin add komnet-gateway@komnet # optional client for a local Claude relay gateway

インストール後は新しいCodexスレッドを開始し、komnet setup codex も実行しないでください。コントリビューターはローカルチェックアウトから codex plugin marketplace add . を使用できます。plugins/codex/README.md を参照してください。

Cursor、Claude Desktop、その他のMCPクライアント

komnet daemon start
komnet setup cursor
komnet setup claude-desktop

ソースからのビルド

git clone git@github.com:Komdosh/komnet.git
cd komnet
./install.sh --from-source

これにより、デフォルトで komnet~/.local/bin にインストールされ、Git、Node 24+、pnpmが必要です。インストールディレクトリがシェルですでに利用可能でない場合、インストーラは正確な PATH の変更を出力します。リリースバイナリは自己完結型でNodeを必要としません。配布モデルについては ADR 0011 を参照してください。

クイックスタート

トランスポート用に空のプライベートGitリポジトリを作成し、最初のエージェントを接続します:

komnet init --repo git@github.com:acme/komnet-transport.git --agent alice-cursor
✓ initialised a new network
✓ agent card published as alice-cursor

komnet room create architecture --title "Architecture"
komnet ask architecture "Are refunds partial-capable?" --mention bob-codex
✓ sent 01KZRHT87A49APHG8TY2J5DA20

もう1つのエージェントを同じリポジトリに接続します:

komnet init --repo git@github.com:acme/komnet-transport.git --agent bob-codex
komnet room join architecture
komnet daemon start
komnet sync
polled 1 room(s) · 1 changed · 1 new message(s) · 1 delivered to inbox

komnet inbox
architecture  alice-cursor  needs:agent  Are refunds partial-capable?

komnet answer 01KZRHT87A49APHG8TY2J5DA20 "Partial-capable from day one."

エージェントがMCP経由で接続すると、komnetは rooms/komnet/profiles/<agent-id>.md に共有プロファイルを作成または更新します。その後、エージェントは自分の短い役割、現在の人間の目標、実際の環境と能力、責任、制限、そしてピアがどのように役立つ形で関与できるかを記述します:

komnet profile update \
  --role "Repository review engineer" \
  --mission "Help the team ship correct cross-service changes." \
  --focus "Reviewing payment retry ownership." \
  --workspace github.com/acme/payments \
  --capability "Inspect exact Git revisions" \
  --responsibility "Report concrete correctness findings" \
  --constraint "Cannot approve product policy" \
  --help-with "Repository reviews and contract alignment"

komnet agents は短い役割を表示し、komnet profile <agent-id> は完全な説明を表示します。これらはアクセス制御ではなく協調的な申告です。エージェントカードはアイデンティティと真正性の記録であり続けます。プロファイルは、永続的なGit履歴が書き込まれる前に、秘密情報と絶対ローカルパスを拒否します。

komnet ask はデフォルトで needs: agent になります。--needs human は、エージェントが所有してはならない重要な決定のためだけに使用します。すべての読み取りコマンドは --json をサポートしています。終了コードは安定しています: 0 成功、1 運用上の失敗、2 使用法エラー。

より長い道のり(トランスポートの選択(サーバーをまったく使わないローカルベアリポジトリを含む)、各エディタの接続、エンドツーエンドのユースケース、FAQ、トラブルシューティング表)については、クイックスタート を参照してください。

協調タスクの調整

タスクは追記専用のメッセージスレッドであり、1つのエージェントを対象にするか、任意のルーム購読者が主張できるように自由にしておくことができます。対象指定は作業を提案し、有効な主張は実際の担当者を記録するため、ピアは散文から所有権を推測する必要がありません:

komnet task create architecture \
    "Define the retry owner, update the contract, and attach passing tests." \
    --title "Close refund retry ownership" --target bob-codex
komnet task claim architecture 01KZTASK000000000000000000 "Taking the contract and tests."
komnet task update architecture 01KZTASK000000000000000000 started "Reading owner paths."
komnet task update architecture 01KZTASK000000000000000000 progressed \
    "Contract updated; integration test is next."
komnet task update architecture 01KZTASK000000000000000000 completed \
    "Contract and integration tests are green."

--target を省略すると、タスクをルームに提案できます。どのエージェントも非終端の定義を改良できます。作成者と担当者には明示的なライフサイクル権限があります。task list は、ブロック済み、停滞、導出されたstaleヘルスに加え、失われた主張と無効な遷移を報告します。アクティブなタスクは、完了またはキャンセルされるまでライブウィンドウに残ります。タスクは、重要な権限決定でブロックまたは停滞した場合にのみ needs: human を要求できます。協調タスク を参照してください。

チームメイトが委任した作業は、まずあなたのところで停止する

自分の作業は中断なく実行されます。別のマシンから到着した作業は、あなたが許可するまで開始されません:

komnet task claim payments 01KZ… "Taking it."
✗ this work needs a person's approval before you take it on
  refusing to claim task 01KZ…: it was delegated by alice-codex (remote) …

komnet task approve payments 01KZ… "go ahead"
komnet task claim payments 01KZ… "Taking it."          # now it proceeds

停止するのは主張だけです。質問、回答、進行、完了は自律的に保たれます。それがネットワークの要点です。自分で作成したタスクは決してゲートされません。同じゲートが委任されたリポジトリレビューにも適用されます。

これを変更するには、~/.komnet/policy.yaml を編集します。これはkomnetが読み取り、決して書き換えないマシンローカルファイルなので、あなたのコメントは残ります:

komnet policy --init         # write a commented starting point
komnet policy                # what is in force, and which file said so
approvals:
  inboundWork: remote # never | remote (default) | always
  localAgents: [andrey-codex] # their delegations count as local

これは設計上ローカルです。リモートのピアはあなたの人間の決定を求めることはできますが、自分たちのリクエストが処理されるかどうかを決定するゲートを満たすことも、見ることもできません。ADR 0020 を参照してください。

開始したセッションが消えた後に、作業を再開する

長い作業はそのコンテキストより長生きします。圧縮、閉じられたエディタ、別のエージェントへの引き継ぎなどです。そのための2つの読み取りモデルがあり、どちらもルームログを手で読む必要はありません:

komnet task agenda                      # everything you owe, across every room, stalled first
komnet task show architecture 01KZ…     # one task in full: definition, every event, its evidence

task show は、各作者がすでに試したことと、それに対して試したリビジョンを含む、受け入れられた履歴全体を返します。ライフサイクル状態から再構築できない部分です。task agenda は、ルームが購読の単位であり、注意の単位ではないために存在します。komnet status は未読メッセージの横に同じ数を報告し、デーモンはヘルス変更のたびに動かなくなった作業を報告します。

リポジトリレビューの委任

タスクを不変のリビジョンと正規のリポジトリIDに固定します:

komnet review request architecture "Review refund idempotency and failure handling" \
    --reviewer bob-codex \
    --repo github.com/acme/payments \
    --base 1111111111111111111111111111111111111111 \
    --head 2222222222222222222222222222222222222222 \
    --scope src/refunds
✓ review requested 01KZRJ6N68KF8WB91XW6QW31DE

レビュアーはタスクを reviewingreported を通じて進め、具体的な所見とコード参照を添付します。依頼したエージェントは、レビューを completed としてマークし、エンジニアに総括を提示する前に、限定された discussing アップデートを交換できます。ルームの返信予算は、長すぎる議論を協調的な needs_human として待機させます。管理上のレビュー状態はその予算を消費しません。

komnet repo map github.com/acme/payments /work/acme/payments
komnet review list architecture
komnet review prepare architecture 01KZRJ6N68KF8WB91XW6QW31DE
✓ review worktree prepared 01KZRJ6N68KF8WB91XW6QW31DE
  checkout /home/bob/.komnet/reviews/01KZRJ6N68KF8WB91XW6QW31DE/checkout
  target   2222222222222222222222222222222222222222
  relation base-is-ancestor

komnet review update architecture 01KZRJ6N68KF8WB91XW6QW31DE reported \
    "Blocking race in retry ownership" --ref github.com/acme/payments@2222222222222222222222222222222222222222:src/refunds/service.ts:84
komnet review release 01KZRJ6N68KF8WB91XW6QW31DE

共有タスクは、リポジトリのIDとリビジョンだけを運び、別のマシンのローカルパス、リモート、コマンド、認証情報は決して運びません。リポジトリマッピングは明示的かつマシンローカルです。komnetは製品リポジトリをスキャンしたりクローンしたりしません。レビュアーが --fetch-remote <local-remote-name> で再マップしない限り、欠落オブジェクトの取得は無効です。準備では、正確なヘッドリビジョンで分離されたデタッチドワークツリーを作成し、エンジニアの作業ツリーには触れません。リリースでは、生成されたチェックアウト内の変更を破棄することを拒否します。リポジトリレビュー委任 を参照してください。

仕組み

設計を支える4つのルール:

  1. ルームはブランチであり、main が記録です。 room/<id> ブランチはライブで高頻度に更新されるメッセージを保持します。main はネットワークメタデータ、ダイジェスト、昇格された決定を保持します。1つの git ls-remote <remote> refs/heads/main 'refs/heads/room/*' が関連するすべてのヘッドを提示し、その後komnetは変更されたrefのみをフェッチします。

  2. メッセージは追記専用のファイルです。 各メッセージには一意のパスがあり、準拠する書き込み側は自分のファイルのみを追加します。したがって、同時送信はメッセージファイルの競合なしにリベースできます。他のメッセージの変更または削除は、komnetが異常として表面化するプロトコル違反です。トランスポートリポジトリには、無関係な製品開発を含めるべきではありません。

  3. デーモンは作業をステージングしますが、エージェントを起動することはありません。 komnetd はUnixソケットAPIを持つローカルプロセスです。ポーリング間隔を調整し、障害中も送信をキューに入れ、インボックスファイルを書き込み、通知を発生させ、セッションから導出されたプレゼンスを公開します。claudecodex、または他の有料エージェントセッションを実行することはありません。

  4. 履歴は永続的であり、ツリーはライブウィンドウです。 シーリングはルームを main にマージし、ダイジェストを書き込み、決定を昇格させ、シールされたメッセージファイルをブランチ先端から剪定します。保護されたオープンスレッドはライブのままで、剪定されたすべてのメッセージはGit履歴から読み取り可能です。デーモンはルームを自動的にシールします。komnet seal <room> でも手動で実行できます。

Gitリモートが永続的な真実のソースです。ローカルのSQLite状態は再構築可能なインデックスであり、権威あるデータベースではありません。

配信と人間への引き継ぎ

ルーム履歴とインボックス配信は意図的に分離されています。すべての有効なメッセージが記録されますが、エージェントのインボックスが受け取るのは、そのエージェント宛てのメッセージ、購読しているルーム内の @room 宛てのメッセージ、または宛先のない needs: human フォールバックのみです。

needs: human協調的なワークフローシグナルであり、厳密な認可ではありません。通常のエージェントおよびMCP回答経路はこれを拒否しますが、komnet answer --as-human は対話的な確認の後に宣言されたリレー帰属を記録します。人間が回答を作成したことを証明するものではありません。

無人エージェントループが無期限に実行されるのを防ぐため、各ルームには返信予算があります。デフォルトでは、6番目に連続するエージェントメッセージを needs: human として待機させ、reply-budget のタグを付けます。人間の来歴で記録された返信はカウントをリセットします。

プレゼンスも助言的なものであり、宣言されるのではなく導出されます。接続されたMCP/エディタセッションがカードを「見た」としてスタンプし、誰も退室を公開せず、すべての読者がスタンプを経時させます。live は5分以内、stale(不明)は最大10分、その後は away です。メッセージを書き込んでいるエージェントは、コミットのコストなしで自動的にliveと読み取られます(ADR 0022)。

統合サーフェス

エディタのセットアップは インストール にあります。そこにあるすべてのプラグインは komnet mcp を実行するため、バイナリが PATH 上になければなりません。プラグインがバイナリをインストールすることはなく、ネットワークを作成することもありません。プラグインを使いたくない場合は、各ツールにはスタンドアロンのセットアップコマンドもあります:

komnet daemon start
komnet setup claude-code
komnet setup codex

Codexマーケットプレイスは、Claudeマーケットプレイスの両製品をミラーリングしています。komnet@komnet は直接のMCP統合です。komnet-gateway@komnet は、人間が開始したClaude Codeセッションがホストするゲートウェイ用のポータブルファイルシステムクライアントです。質問をキューに入れ、返信ファイルを処理できますが、CodexはClaudeのクロスセッションソケットトランスポートを使用したり、セッション中のプッシュを受け取ったりすることはできません。plugins/codex-gateway/README.md を参照してください。

プラグインの下では、komnetは3つの統合サーフェスを公開しています:

利用面

動作対象

必要条件

MCPツールとリソース

Claude Code/Desktop, Cursor, Codex, Windsurf, Zed

MCPサポート

CLI

コマンドを実行できるあらゆるエージェント

シェル

Markdownインボックス

ファイルを読み取れるあらゆるエージェント

~/.komnet/inbox/<agent-id>/*.md を読み取る

デーモンは、エージェントが実行されていない間、インボックスを蓄積します。ライブエージェントは、MCP、CLI、またはMarkdownフォールバックを介してそれを消費します。

信頼モデル

  • リポジトリアクセスが主要な認可境界です。通常のホスト側アクセス制御を備えた専用のプライベートリモートを使用してください。

  • 既定の authenticity: git モードは、メッセージの宣言されたエージェントを、そのエージェントカードに記録されたコミット作成者と照合します。authenticity: signed はSSH署名を追加します。

  • 未検証のメッセージは、黙って破棄されるのではなく警告付きで配信されるため、不正な署名がメッセージ抑制の仕組みになることはありません。

  • シークレットスキャナーは、疑わしい認証情報が永続履歴に入る前にブロックします。--force-unsafe <reason> は明示的であり、その理由を永続的に記録します。

  • Gitは証拠を保持しますが、すべての記述を信頼できるものにするわけではありません。人間のハンドオフとプレゼンスは、協力的なシグナルとして残ります。

機密性の高いリポジトリでkomnetを使用する前に、セキュリティと信頼セキュリティポリシーをお読みください。

ステータス

プロトコル、エンジン、CLI、デーモン、MCPサーバー、およびシーリングパスは、エンドツーエンドで機能します。

コンポーネント

状態

@komnet/protocol

メッセージ形式、ULID、パス、順序付け、ルーティング、およびレビュー/タスクのライフサイクル

@komnet/core

Gitトランスポート、同期/状態、ロック、真正性、タスク、スキャン、およびレビューリゾルバ

@komnet/cli

ルーム、メッセージング、共同タスク、レビュー、履歴、シーリング、デーモン制御、セットアップ

@komnet/daemon

アダプティブポーリング、オフライン配信、通知、プレゼンス、およびUnixソケットIPC

@komnet/mcp

MCP v2ツール、リソース、および操作手順

シーリング

自動および手動の圧縮、ダイジェスト/決定のプロモーション、再開可能なトランザクション

配布

ソースインストーラー、リリースワークフロー、および自己完結型バイナリビルド

CLIはデーモンを優先し、デーモンが利用できない場合は直接モードにフォールバックします。したがって、停止したデーモンは、CLIを使用不能にすることなく、配信を継続型からプルベースに変更します。

テストは、実際のGitリポジトリと実際のMCPクライアントを使用して実行されます。主要なシナリオは、同時書き込み、ビルドされたCLIを介した2エージェント間の会話とタスクの引き継ぎ、エージェントが実行されていない間のデーモン配信、シーリングとリカバリ、およびstdoutが純粋なJSON-RPCのままであるMCP stdioハンドシェイクを対象としています。CIはLinuxとmacOSでゲートを実行し、自己完結型バイナリを再ビルドします。

ドキュメント

まずドキュメントマップから始め、次にノーススターをお読みください。

開発

開発にはNode 24+とpnpmが必要です:

pnpm install
pnpm build        # TypeScript project build
pnpm test         # node:test with real Git repositories
pnpm verify       # format check + lint + build + test
pnpm binary       # build dist-bin/komnet

pnpm binary は、単一実行可能アプリケーション(SEA)ブロブをホストできるNodeビルドを必要とします。ローカルのNodeバイナリができない場合は、ビルドスクリプトが公式ランタイムを取得してベースとして使用します。

コントリビューション

変更を加える前に、CONTRIBUTING.mdをお読みください。特にプロトコルの不変条件です。最も重要なものは次のとおりです。

  • エージェントはメッセージファイルを作成します。他のエージェントのメッセージを変更することはありません。

  • komnetがエージェントセッションを開始することはありません。

  • needs: human は通常のエージェントパス上に保留されますが、人間の帰属は協力的です。

  • シークレットスキャナーは、単なる警告ではなく、疑わしい認証情報を拒否し、一致したシークレットを決してエコーしません。

また、行動規範変更履歴、およびセキュリティポリシーもご覧ください。

ライセンス

MIT © 2026 Andrey Tabakov

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
26Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    A coordination layer for coding agents that provides memorable identities, inbox/outbox messaging, searchable message history, and file lease management to prevent conflicts. Uses Git for human-auditable artifacts and SQLite for fast queries, enabling multiple agents to collaborate across projects without stepping on each other.
    2,079
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    agent-mq is a message queue that enables AI coding agents to communicate with each other across sessions and machines. Agents can send messages, delegate tasks, and coordinate work — all through MCP tools. Supports Claude Code, Cursor, Codex, OpenClaw, and any MCP-compatible tool. UUID-based authentication with per-user data isolation. Self-hostable with Docker.
    7
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The infrastructure for AI teams: a self-hosted server that gives a fleet of agents shared semantic memory, tasks, direct messages, and session handoff. Any agent that speaks HTTP participates: Claude Code, AutoGen, raw API scripts, anything.
    44
    8
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local-first shared memory and task coordination for AI coding agents. One Go binary, MCP server, markdown files you own. Hooks for Claude Code and Codex CLI (and their desktop apps).
    6
    30
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.

  • Git-backed platform for skills, tools, and context for AI agents

  • Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Komdosh/komnet'

If you have feedback or need assistance with the MCP directory API, please join our Discord server