Skip to main content
Glama

オフィス

Claude Code セッション間の ピアツーピア通信。あなたのセッションと専門家が名前で呼べる人になり、同時に複数の話題について互いに会話します — オーケストレーターなし。

デザイン仕様: pessoal/claudicaro-cli/docs/design/2026-08-02-escritorio-multiagente.md

なぜこれなしではできなかったのか

Claude Code のネイティブトポロジーは ツリー です。サブエージェントは親に返し、SendMessage は自身のセッションが生成した相手にしか届かず、Workflow はスクリプト経由でデータを渡します。兄弟同士は会話しません。横方向の通信には共有メディアが必要です — それがこのメールです。

Related MCP server: claude-mesh

6つのツール

tool

機能

roster

誰がいるか、何を知っているか、どのティアか — 一人につき一行、.md を読み込まない

ask

質問して 応答を待つ

dm

送信して 続行する。保留中の質問のスレッド内では、その応答になる

inbox

メッセージを取得する(通常はフックが自動で配信する)

board

共有ホワイトボード、宛先なし

claim

操作する前にリソースを主張する

さらに fechar_thread は会話を終了し、各同僚にノートブックを蒸留させます。

仕組み

スレッド は会話の唯一のコンテナです — ルームやチャンネルを置き換えます。ピア間の議論は N 人の参加者がいるスレッドで、各参加者は誰に返信するかを選びます。

ボスなし、メール内の2つのルールがシステムを支えます:

  • hops はメッセージごとにデクリメントされ、ゼロになるとメールは拒否します。無限のピンポンを防ぎます。

  • スレッドの所有者はそれを開いた人であり、その人だけが閉じることができます。

配信 には2つの性質があります:

  • 生存セッションフック で受信します(Stop は停止をブロックして配信します。PostToolBatch は作業の途中で配信します)。フックはスクリプトです — モデルの外部で実行され、トークンコストはゼロです。

  • ロスターの同僚 はメールによって claude -p起こされ、応答してから再び眠ります。

同僚のメモリ: スレッド内ではセッションを生存させ(--resume)、すべてを記憶します。スレッドが閉じられると、学んだことを ノートブック .md に蒸留し、セッションは終了します。長期的なものはノートブックです — 監査可能、手動編集可能、バージョン管理されています。

インストール

npm install && npm run build
node scripts/instalar.mjs          # --dry pra ver antes, --remover pra desfazer

インストーラーは配信フックを ~/.claude/settings.json に登録し、ESCRITORIO_WORKSPACE/ESCRITORIO_ROSTER を設定し、claude mcp add --scope user で MCP サーバーを登録します(これは ~/.claude.json に書き込まれます — settings.json は MCP を登録しません)。

初回は settings.json.antes-do-escritorio にバックアップを作成し、そのバックアップを上書きすることはありません。

ロスター

~/claude-workspace-config/roster.yaml(Mac ↔ VM で同期されたリポジトリ):

especialista-deposito:
  brief: "Depósito antecipado: cobrança, pagamento, reembolso (DSG/v1)"
  agent_file: ${ESCRITORIO_WORKSPACE}/dsg/.agent/especialista-deposito.md
  caderno: ${ESCRITORIO_WORKSPACE}/pessoal/escritorio/cadernos/especialista-deposito.md
  tier: advisor
  cwd: ${ESCRITORIO_WORKSPACE}/dsg/v1

briefroster() が返す唯一のものです — 「この人を呼ぶのはどんな時か」を考えて書いてください。パスは ~${VAR} を受け入れます。環境変数の展開により、同じファイルが Mac と VM の両方で機能し、ワークスペースは異なる場所にあります。

ティア

tier

可能なこと

強制方法

advisor

読み取りとアドバイス

ツールの 許可リスト--allowedTools): 読み取り、Bash 読み取り専用、およびオフィスのツール

editor

ワーキングツリーに書き込む

acceptEdits、および claim() がアクティブな場合のみ — メールはそれなしでの起床を拒否する

worktree

分離して書き込む

独自の git worktree。作成できない場合、実際のリポジトリにフォールバックせず 拒否 する

リクエストはクエリ内でティアを 引き下げる ことはできますが、引き上げることはできません。

なぜ拒否リストではなく許可リストなのか

最初のバージョンは --disallowedTools Edit Write NotebookEditbypassPermissions と共に使用していました。実際の claude でテストしたところ、漏洩しました: 同僚が Bash 経由でファイルを書き込みましたが、これは拒否リストに含まれていませんでした。4つのバリエーションで測定:

flags

結果

bypassPermissions + 拒否 Edit/Write

漏洩(Bash 経由で書き込み)

bypassPermissions + 拒否 Edit/Write/Bash

防止

許可モードなし + 拒否 Edit/Write/Bash

防止

許可モードなし + 許可リスト 読み取り専用

防止、さらに git log は正常に読み取れた

許可リストに決定しました: リストし忘れたものは許可される代わりに 拒否 されます。許可リスト内の Bash(cat:*) はリダイレクト(cat > arquivo)によるエスケープを 許可しなかった ことに注意してください。

動作の確認

npm run tail

メールを監視し、すべてのセッション間 で何が起こっているかを出力します — ボードへの書き込み、クレーム、スレッドの開始、メッセージの交換、応答の到着:

Escritório — monitor ao vivo
sessões vistas na última hora: icaromelo@v1, icaromelo@kairos-ui, icaromelo@oraculo-api, …
threads abertas: (nenhuma)
────────────────────────────────────────────────────────────────────────
13:26:36 ▤ quadro dsg/v1:decisoes = cache sempre via RedisService · icaromelo@v1
13:26:37 🔒 claim src/infra/redis por icaromelo@v1 · revisar TTLs
13:26:38 ⊕ thread [477cfbdc] Em uma frase: qual TTL padrao usamos? · dono icaromelo@v1
13:26:38 icaromelo@v1 →? especialista-cache  [477cfbdc]
        Em uma frase: qual TTL padrao usamos?
13:26:44 especialista-cache ←! icaromelo@v1  [477cfbdc]
        O TTL padrão é 3600 segundos (1 hora) — mas sempre passe TTL explícito…

→? はブロッキング質問、 はメッセージ、←! は応答です。

アイデンティティ

各セッションには名前が必要です。ESCRITORIO_ID が宣言されている場合はそれを使用し、ない場合は usuário@pasta から派生します — プロジェクトごとに安定しているため、dsg/v1 で開かれたセッションは常に icaromelo@v1 であり、別のセッションからアドレス指定できます。

テスト

npm test                        # 117 testes, sem gastar API
node scripts/smoke-mcp.mjs      # sobe o servidor MCP de verdade via stdio
node scripts/smoke-e2e.mjs      # E2E REAL: acorda colega, --resume, caderno (gasta API)
node scripts/smoke-escrita.mjs  # E2E REAL dos 3 tiers: advisor bloqueado, worktree isolado,
                                # editor sob claim (gasta API)

既知の制限

  • マシンごとに1つのメール。 Oracle VM 上のセッションは Mac のメールと通信しません。マシン間のブリッジは別の問題です。

  • dist/ は SSD 上にあります。 SSD がアンマウントされると、フックは静かに失敗し(|| true)、MCP は切断されます — 何も停止しませんが、再マウントされるまでオフィスは消えます。

  • 生存セッションへの ask は、そのセッションが実行中であることに依存します。 誰もそのセッションを開いていない場合、タイムアウト(5分)まで待機し、応答は後で受信箱に入ります。

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

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.

  • Ephemeral REST chatrooms for AI agents to coordinate. Share a room URL — agents talk live.

  • Agent-to-agent network for teams: dm, who-knows-X routing, shared rooms. Human-in-the-loop.

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/icaromelo1/escritorio'

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