passoff
Passoff
AIコーディングエージェント間でバトンを渡す — 文脈を失わずに。
メモリツールはすべてを保存します。Passoffは重要な瞬間を記録します。 Claude Code、Cursor、Codex、Windsurf、およびあらゆるMCPクライアント間でコンテキストを引き継ぐためのコマンドを1つ提供します。どのAIが何を誰に送ったかという完全なプロバナンス(来歴)を記録します。
なぜPassoffなのか
ローカルファースト。
~/.passoff/db.sqliteにSQLiteを使用。クラウドなし、アカウントなし、APIキーなし、テレメトリなし。プロバナンスを内蔵。 すべての引き継ぎで
from_client、from_model、to_client、タイムスタンプを記録。MCPプロトコルがクライアント名を刻印するため、AIはどのツールが書き込んだかについて嘘をつくことができません。リネージ(系譜)を内蔵。 引き継ぎは親を参照し、複数のAIやセッションにわたる追跡可能なチェーンを形成します。
単一の目的。 引き継ぎのみ。メモリでも、オーケストレーションでも、ダッシュボードでもありません。
Related MCP server: meridian
30秒デモ
Claude Codeで機能を完成させる際:
あなた:
/passoff — UI作業のためにCursorに切り替えClaudeが構造化されたマークダウンの引き継ぎを作成し、
{ id: "ph_aB3x9K" }を返します。
Cursorを開き、新しいチャットを開始:
あなた:
/passoff-loadCursorが
passoff_load({ latest: true })を呼び出し、マークダウンを取得して思考の途中から再開します。
後でチェーンを追跡:
$ passoff thread ph_GuqtDKDO
o ph_Mo12sReh Refactor auth middleware
| claude-code -> cursor [loaded]
|
* ph_GuqtDKDO Wired auth into login
| cursor -> codex [loaded]
|
o ph_T0s2ZQvD Fixed login tests
codex [open]インストール
npm i -g passoffNode 20以上が必要です。
またはソースから実行:
git clone https://github.com/TheMrGU/passoff && cd passoff
npm install && npm run build
node dist/index.js --helpワンショットセットアップ
リポジトリがローカルにチェックアウトされている場合、以下のコマンドでサポートされているすべてのクライアントにPassoffを一度に組み込めます:
npm run setupこれは npm install + npm run build を実行し、MCPサーバーをClaude Codeに登録(インストールされている場合 claude mcp add 経由)、~/.cursor/mcp.json、~/.codeium/windsurf/mcp_config.json、~/.codex/config.toml を書き込み/マージし、スラッシュコマンドテンプレートをインストールします。その後、各AIクライアントを再起動してください。
MCPクライアントへの手動組み込み
Claude Code
claude mcp add passoff -- npx -y passoff serveCursor — ~/.cursor/mcp.json (またはプロジェクト内の .cursor/mcp.json)
{
"mcpServers": {
"passoff": { "command": "npx", "args": ["-y", "passoff", "serve"] }
}
}Codex — ~/.codex/config.toml
[mcp_servers.passoff]
command = "npx"
args = ["-y", "passoff", "serve"]Codexネイティブのスラッシュコマンドをインストール:
passoff install --client codexこれにより、/passoff:create、/passoff:load、/passoff:list、/passoff:search がローカルのCodexプラグインとして登録されます。
Windsurf、その他
同じstdioコマンドペアを使用します — docs/clients.md を参照してください。
スラッシュコマンド
passoff install 後、サポートされているすべてのクライアントで同じ4つのコマンドが利用可能になります(Codexは /passoff:create などを使用し、Claude CodeとCursorは /passoff、/passoff-load、/passoff-list、/passoff-search を使用します)。
コマンド | 動作 |
| 送信側のAIが構造化された引き継ぎを作成し、IDを返す |
| 受信側のAIが最新の有効な引き継ぎ(またはID指定のもの)を読み込む |
| 現在のプロジェクト内の最近の引き継ぎを閲覧する |
| 引き継ぎ全体を全文検索する |
MCPツール
ツール | 目的 |
| 送信側のAIが構造化された引き継ぎを作成する |
| 受信側のAIが |
| プロジェクト内の引き継ぎを閲覧する(メタデータのみ) |
| 引き継ぎ全体を全文検索する (FTS5) |
| 引き継ぎのリネージチェーンを表示する |
オペレーターCLI
passoff serve # run MCP server (stdio) — invoked by clients
passoff list [--project X] # recent handoffs table
passoff show <id> # full markdown + metadata
passoff thread <id> # lineage tree
passoff archive <id> # mark archived
passoff delete <id> # hard delete (confirms)
passoff clear [--project X] # archive all open in a project (confirms)
passoff doctor # DB path, version, row counts, MCP config hints
passoff install # install Claude/Cursor/Codex command templates
passoff uninstall # remove installed command templatesストレージとスコープ
DBの場所:
~/.passoff/db.sqlite(PASSOFF_DB_PATHで上書き可能)。プロジェクトのスコープ:
PASSOFF_PROJECT_ROOTから派生。それ以外は最も近い.gitディレクトリ、それもなければcwd。スラッグは<dir>-<6char hash>なので、2つのapi/ディレクトリが衝突することはありません。テレメトリなし。 ネットワーク呼び出しなし。SQLiteブラウザでDBを開くことができます。
Passoff vs 共有メモリツール
どちらも役割があります。解決する問題が異なります。
Passoff | 共有メモリツール | |
プリミティブ | 個別で意図的な引き継ぎイベント | 常時稼働のメモリプール |
トリガー |
| 暗黙的、すべてのプロンプトで |
次のAIが見るもの | 前のAIが渡すことを選択したもののみ | 検索で浮上したものすべて |
プロバナンス | 行に組み込まれている(クライアント、モデル、親) | 後付けのメタデータ |
クリーンアップ | 引き継ぎアトムをアーカイブまたは削除 | 埋め込みを追いかける |
最適な用途 | 思考の途中でのツール切り替え、決定の追跡 | 「6週間前に何をしたか」を思い出す |
メモリツールは 「何が関連している可能性があるか?」 に答えます。Passoffは 「次に読み込むべきものはこれだ」 に答えます。
詳細な位置付け: docs/design.md。
FAQ
データはどこに保存されますか?
~/.passoff/db.sqlite という単一のSQLiteファイルです。任意のSQLiteブラウザで開くことができます。クラウドコンポーネントはありません。
Passoffはネットワーク経由で何かを送信しますか? いいえ。MCPサーバーはstdioのみです。CLIは外部に通信しません。セットアップスクリプトはローカルの設定ファイルのみを書き込みます。
2つのプロジェクトで同じDBを共有できますか? はい。すべての引き継ぎはプロジェクトのスラッグにスコープされます。DBはグローバルですが、ビューはデフォルトでプロジェクトごとになります。
2つのAIが同じ引き継ぎで衝突することはありますか?
いいえ。読み込みによってステータスが open → loaded に切り替わり to_client が刻印されますが、アーカイブするまでセッションをまたいで再読み込み可能です。
[他のMCPクライアント]で使用できますか? クライアントがstdio経由でMCPを話すなら、はい。同じように組み込んでください。docs/clients.md を参照してください。
なぜ会話を貼り付けるだけではいけないのですか?
3つの理由があります。(1) 受信側のAIがノイズではなく、あなたが渡すことを選択した「正確なもの」を受け取れること。(2) 行が監査可能であること(from_client、from_model、タイムスタンプ)。(3) 複数ステップのワークフローにわたってリネージがスレッド化されること。
ステータス
アルファ版。 APIとストレージの形状は1.0までに変更される可能性があります。DBは加算的に自己移行しますが、時折変更が発生することを想定してください。IssueやPRの提出を歓迎します — 以下を参照してください。
貢献
CONTRIBUTING.md を参照してください。要約: npm install && npm test を実行し、PRを集中させ、メモリレイヤーやオーケストレーターをPassoffにバンドルしないでください。
ライセンス
MIT — LICENSE を参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Shared memory for AI coding agents. Save once, reuse from Cursor, Claude Code, Codex.
Shared, versioned context that humans and AI agents can publish, review, annotate, and continue.
Codebase graphs, caller impact analysis, and recorded project context for AI coding agents.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI coding assistants like Claude Code, Cursor, and Codex to share chat logs, terminal history, and session context with each other. Eliminates the need to re-explain context when switching between different AI coding tools.2MIT
- FlicenseNot gradedqualityBmaintenancePersistent memory and task coordination for AI coding agents. Tracks sprint items, logs tasks, manages session handoffs, and surfaces HITL requests so you stay in control across single or parallel Claude Code, Codex, Cursor, and Windsurf sessions.-
- AlicenseAqualityDmaintenanceEnables session continuity across AI coding assistants by preserving context and generating handoff markdown, allowing seamless switching between tools like Cursor, Claude Code, and Claude Desktop.11MIT
- AlicenseAqualityBmaintenanceEnables teams to share structured, git-synced context among AI coding agents working on the same repository, including living plans, task declarations, handoff briefs, file-provenance history, and conflict detection.1212 npm2MIT