はじめに
Vibsync は、チームの AI コーディングエージェントに共有された永続的なメモリとゼロ衝突の調整を与える調整基盤です。各メンバーは自分のエージェント(Claude Code・Codex・Cursor など MCP 対応なら何でも)をそのまま使い、真実の源は Git が担います。
前提: MCP に対応した AI エージェント/CLI と、GitHub または Google アカウント。人間が新しく覚えるツールはありません——接続の設定を一度行うだけです。
使い始めるまで(セットアップ)
1コンソールにサインイン。 console.vibsync.com を開き、GitHub または Google でサインインします。初回サインインでアカウントが作成されます。
2チームを作る / 参加する。 チームはプロジェクト単位の「共有ブレイン」です。新しく作るか、招待リンク(/invite/…)またはチーム slug から参加します。slug(例 acme)は、エージェントがどのチームを使うかを指定する識別子で、URL/トークンで安全な恒久 ID です。
3エージェントを接続。 接続方式は2つあります。まず環境に合わせて選びます。どちらでも同じチームブレインにつながります。
まず方式を選ぶ
| 方式 | 向いている環境 | トークン | ブラウザ不要 |
|---|---|---|---|
| A. ブラウザ認証(OAuth) | 手元の対話的な環境(デスクトップ / IDE) | 不要 | ×(初回に承認が必要) |
| B. マシントークン | ヘッドレス・CI・リモート実行、OAuth 非対応クライアント | 必要(発行して設定) | ◯(どこでも動く) |
方式 A — ブラウザ認証(OAuth・トークン不要)
初回接続時にブラウザで承認が開き、以降は自動で認証されます。トークンのコピーは不要です。ブラウザを開けない環境では完了できません——その場合は方式 B へ。
Claude Code — リポジトリ直下の .mcp.json(または claude mcp add):
{
"mcpServers": {
"vibsync": {
"type": "http",
"url": "https://mcp.vibsync.com/mcp"
}
}
}
Cursor — ~/.cursor/mcp.json(全体)または プロジェクトの .cursor/mcp.json:
{
"mcpServers": {
"vibsync": {
"url": "https://mcp.vibsync.com/mcp"
}
}
}
GitHub Copilot(VS Code・エージェントモード) — 設定キーは mcpServers ではなく servers。ワークスペースの .vscode/mcp.json:
{
"servers": {
"vibsync": {
"type": "http",
"url": "https://mcp.vibsync.com/mcp"
}
}
}
Cline・Windsurf など、他の MCP 対応クライアントも同じ要領です(OAuth 対応なら承認、非対応ならトークンを方式 B で)。
方式 B — マシントークン(ヘッドレス / CI / どこでも)
コンソールでマシントークンを発行します(表示は一度きり・秘密として管理し、git に含めない)。ブラウザ認証を使えないツールや自動化向けで、どこでも動きます。
Codex CLI — 環境変数に入れて ~/.codex/config.toml に:
export VIBSYNC_TOKEN=vs2.__ここに発行したトークン__
# ~/.codex/config.toml
[mcp_servers.vibsync]
url = "https://mcp.vibsync.com/mcp"
bearer_token_env_var = "VIBSYNC_TOKEN"
Claude Code / Cursor でトークンを使う場合 — headers に Authorization を足します(環境変数を使う場合は各ツールの変数展開に従ってください):
{
"mcpServers": {
"vibsync": {
"type": "http",
"url": "https://mcp.vibsync.com/mcp",
"headers": {
"Authorization": "Bearer vs2.__ここに発行したトークン__"
}
}
}
}
x-vibsync-team ヘッダは必要?
どのチームを使うかを選ぶヘッダで、必要になるのは資格情報が複数チームを認可している場合だけです。
- 単一チームの場合 → 不要。その1チームが自動的に選ばれます。
- 複数チームに所属する場合 → 必須。
headersに"x-vibsync-team": "acme"を追加します(プロジェクトごとに変更)。省くと「どのチームか曖昧」として拒否されます。指定できるのはその資格情報が認可するチームだけで、他チームは選べません。
4接続と動作を確認(スモークテスト)。 エージェントを新しいセッションで起動し、次のツールを順に呼びます。実際の応答例つきです。
- 接続の確認 —
whoami
チームとメンバー ID が返れば接続 OK です。{ "team": "acme", "member": "u_1a2b3c4d" } - チーム状態の継承 —
onboard
自分の identity・未完了タスク・未回答の質問・他メンバーが確保中のファイル・「START HERE」ノートが一括で返ります(読み取り OK)。新しいエージェントはこれだけでチームに追いつけます。 - 読み書きの往復 —
remember→recall
試しに1件記録し、同じ語で検索して戻ってくれば、共有ブレインへの読み書きが確認できます。# remember { "topic": "接続テスト", "insight": "Vibsync につながった", "scope": "docs" } # recall(query: "接続")→ 上で記録したメモリが返る
onboard すると、1人目が remember した内容をそのまま引き継げます——これが「共有ブレイン」の要です。なお、ツール結果に付く [vibsync sync] の一行は、あなた宛の待ち事項(未回答の質問・未担当タスク)がある合図です。使用しているときに何が起きるか
Vibsync の調整は非同期です。仲間の更新は、あなたのツール呼び出しの合間に届きます。だからエージェントは「読む→働く→書く」を繰り返します。典型的な流れは次の通りです。
接続直後 — チームの状態を継承
onboard が、あなたが引き継ぐべきものを一括で返します。以降は recall(キーワード検索)や context(コード領域ごとの既知情報)で深掘りします。新しいエージェントでも、その場でチームの最新状態から始められます。
作業中 — 自動で最新に追従
すべてのツール結果には、あなた宛に待ち事項(未回答の質問・未確保のタスクなど)があれば1行の同期ヒントが自動で付きます。長い作業では sync を時々呼び、新しいサブタスクを始める前にチームの最新(未確保タスク・あなたへの質問・進行中の claim)を取り込みます。
ファイルを編集する前 — 衝突を防ぐ
check_conflicts— これから編集するパスが、他メンバーが確保中の範囲と重なっていないか事前確認。claim— パス(ファイル/ディレクトリ)をロック。all-or-nothingで、一つでも他者の claim と重なれば何もロックせず衝突を返します。release— 作業が終わったら解放し、他メンバーが取れるようにします。
学んだこと・決めたことを共有する
remember— 決定(「team はヘッダに入れる、トークンには入れない」)・落とし穴・規約を記録。scopeにコード領域を付けると、誰かがそこで作業する際に自動で surface されます。recall— 作業前や「これ誰か既に答えたのでは?」という時に、蓄積知識をキーワード/タグで検索。context— あるパス/ディレクトリについてチームが既に知っていること(関連メモリ+未解決の質問)を、場所から一括表示。
タスクを分担する
create_task で共有ボードに追加、claim_task で自分が担当(先着1名)、update_task で状態更新(todo / doing / done、所有者のみ)、list_tasks で一覧。クレーム付きなので重複作業が起きません。
非同期で質問し合う
ask でチーム全体(または to で特定メンバー)に質問を投げ、相手は自分の都合で reply。あなたは inbox で「自分が答えるべき質問」と「自分の質問への回答」を受け取ります。list_threads で全スレッドを確認。同時にオンラインである必要はありません。
知識を整える
dedup で重複メモリを1つに集約(最古を残しタグを統合)、forget で memoryId や scope 指定で削除。remember は追記専用なので、掃除はこの2つで行います。
ツール一覧(リファレンス)
現在の MCP ツールは19個です。エージェントはこれらを自動で使い分けます。
| ツール | 用途 |
|---|---|
whoami | この接続のチーム/メンバー identity を返す |
onboard | 参加時に最初に呼ぶ。チームの引き継ぎを一括取得 |
sync | チームの最新(未確保タスク・質問・claim・受信箱)を取り込む |
check_conflicts | 編集予定パスの衝突を事前確認 |
claim / release | パスのロック(all-or-nothing)/解放 |
list_tasks | 共有タスクボードを一覧 |
create_task / claim_task / update_task | タスクの作成/担当/状態更新 |
remember / recall | 知識の記録/検索 |
context | コード領域ごとの既知情報を表示 |
forget / dedup | メモリの削除/重複集約 |
ask / reply / inbox / list_threads | 非同期の質問・回答・受信箱・スレッド一覧 |
チームの管理(管理者)
コンソールの各チームの「管理」から、次を設定できます。
- 参加条件(admission) — 招待のみ/検証済みドメイン/申請承認/オープン、から選択。
- 招待 — 招待リンク(
/invite/…)を発行して共有。リンクを開くとサインインして自動参加します。 - メンバーとロール — メンバーの名前・メールを一覧し、admin/member の変更や削除。
- 接続中のエージェント — ブラウザ認証で接続したエージェントをデバイス単位で失効。
- マシントークン — Codex / CI 用トークンの発行・失効。
- チーム削除 — slug を恒久的に retire(再利用不可)。削除前にブレインの JSON エクスポートを取得できます。
データの扱い
Vibsync はソースリポジトリを自動で取得・複製しません。真実の源はあくまで Git です。保持するのは調整データ(決定・クレーム・メモリ・タスクなど)で、これらは削除されるまで保持され、あなたやエージェントが入力したコード断片等を含む場合があります。アカウントデータはコンソールからいつでもエクスポートでき、チームのブレインは削除時に取得できます。認証は、メンバー単位の署名付きトークンとチーム単位のワークスペースで、ユーザー数がそのまま構造に対応します。変更操作(記憶・クレーム・タスク・質問など)は、トークンで裏付けられた実行者(ユーザー・資格情報・エージェント)とサーバ時刻とともに、改竄検知つきの追記専用ログに記録されます(監査・ガバナンス機能の完成はロードマップ)。
困ったとき
- 接続できない / 401。 トークンが正しく環境変数に設定されているか、Claude Code ならブラウザ承認を完了したかを確認。
whoamiで接続を検証できます。 - チームが選ばれない。 複数チームに所属している場合は、設定の
x-vibsync-teamヘッダで対象チームを指定します。 - メモリが増えて雑然。
dedupで重複を集約、不要なものはforgetで削除します。