passoff
Passoff
Den Staffelstab zwischen KI-Coding-Agenten weitergeben — ohne den Faden zu verlieren.
Memory-Tools speichern alles. Passoff markiert die Momente, auf die es ankommt. Ein Befehl, um Kontext zwischen Claude Code, Cursor, Codex, Windsurf und jedem MCP-Client zu übergeben — mit vollständiger Herkunftsnachverfolgung, welche KI was an wen gesendet hat.
Warum
Local-first. SQLite unter
~/.passoff/db.sqlite. Keine Cloud, keine Konten, keine API-Schlüssel, keine Telemetrie.Integrierte Herkunftsnachverfolgung. Jede Übergabe protokolliert
from_client,from_model,to_clientund Zeitstempel. Das MCP-Protokoll stempelt den Client-Namen — die KI kann nicht lügen, welches Tool den Eintrag geschrieben hat.Integrierte Abstammung. Übergaben verweisen auf ihre Vorgänger und bilden so eine nachvollziehbare Kette über mehrere KIs und Sitzungen hinweg.
Eine Aufgabe. Übergaben. Kein Memory, keine Orchestrierung, kein Dashboard.
Related MCP server: meridian
30-Sekunden-Demo
In Claude Code, beim Abschluss eines Features:
Du:
/passoff — wechsle zu Cursor für die UI-ArbeitClaude schreibt eine strukturierte Markdown-Übergabe und gibt
{ id: "ph_aB3x9K" }zurück.
Öffne Cursor, starte einen neuen Chat:
Du:
/passoff-loadCursor ruft
passoff_load({ latest: true })auf, erhält das Markdown und macht genau dort weiter, wo aufgehört wurde.
Verfolge die Kette später:
$ 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]Installation
npm i -g passoffErfordert Node 20+.
Oder aus dem Quellcode ausführen:
git clone https://github.com/TheMrGU/passoff && cd passoff
npm install && npm run build
node dist/index.js --helpOne-Shot-Einrichtung
Wenn das Repository lokal ausgecheckt ist, verbindet dies Passoff in einem Schritt mit allen unterstützten Clients:
npm run setupEs führt npm install + npm run build aus, registriert den MCP-Server bei Claude Code (via claude mcp add, falls installiert), schreibt/mergt ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, ~/.codex/config.toml und installiert die Slash-Command-Vorlagen. Starte danach jeden KI-Client neu.
Manuelle Einbindung in deinen MCP-Client
Claude Code
claude mcp add passoff -- npx -y passoff serveCursor — ~/.cursor/mcp.json (oder .cursor/mcp.json in einem Projekt)
{
"mcpServers": {
"passoff": { "command": "npx", "args": ["-y", "passoff", "serve"] }
}
}Codex — ~/.codex/config.toml
[mcp_servers.passoff]
command = "npx"
args = ["-y", "passoff", "serve"]Installiere Codex-native Slash-Befehle:
passoff install --client codexDies registriert /passoff:create, /passoff:load, /passoff:list und /passoff:search als lokales Codex-Plugin.
Windsurf, andere
Dasselbe stdio-Befehlspaar — siehe docs/clients.md.
Slash-Befehle
Nach passoff install erhält jeder unterstützte Client dieselben vier Befehle (Codex verwendet /passoff:create etc.; Claude Code und Cursor verwenden /passoff, /passoff-load, /passoff-list, /passoff-search).
Befehl | Was er tut |
| Die ausgehende KI schreibt eine strukturierte Übergabe und gibt ihre ID zurück |
| Die eingehende KI lädt die letzte aktive Übergabe (oder eine nach ID) |
| Durchsuche kürzliche Übergaben im aktuellen Projekt |
| Volltextsuche über alle Übergaben |
MCP-Tools
Tool | Zweck |
| Ausgehende KI schreibt eine strukturierte Übergabe |
| Eingehende KI lädt per |
| Durchsuche Übergaben in einem Projekt (nur Metadaten) |
| Volltextsuche über Übergaben (FTS5) |
| Zeige die Abstammungskette einer Übergabe |
Operator 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 templatesSpeicherung & Scoping
DB-Speicherort:
~/.passoff/db.sqlite(überschreibbar mitPASSOFF_DB_PATH).Projekt-Scoping: abgeleitet von
PASSOFF_PROJECT_ROOT, sonst das nächste.git-Verzeichnis, sonstcwd. Der Slug ist<dir>-<6char hash>, damit zweiapi/-Verzeichnisse niemals kollidieren.Keine Telemetrie. Keine Netzwerkaufrufe. Öffne die DB in einem beliebigen SQLite-Browser.
Passoff vs. Shared-Memory-Tools
Beide haben ihre Berechtigung. Sie lösen unterschiedliche Probleme.
Passoff | Shared-Memory-Tool | |
Primitiv | Diskretes, bewusstes Übergabeereignis | Immer aktiver Memory-Pool |
Auslöser | Du tippst | Implizit, bei jedem Prompt |
Was die nächste KI sieht | Genau das, was die vorherige KI übergeben hat | Was auch immer durch Retrieval auftaucht |
Herkunft | In der Zeile eingebaut (Client, Modell, Elternteil) | Aufgesetzte Metadaten |
Bereinigung | Archivieren oder Löschen eines Übergabe-Atoms | Embeddings nachverfolgen |
Am besten für | Tool-Wechsel mitten im Gedanken; Entscheidungen nachverfolgen | Erinnern an "was haben wir vor sechs Wochen gemacht" |
Memory-Tools beantworten "was könnte relevant sein?". Passoff beantwortet "hier ist genau das, was als Nächstes geladen werden soll."
Vollständige Positionierung: docs/design.md.
FAQ
Wo liegen meine Daten?
In einer einzigen SQLite-Datei unter ~/.passoff/db.sqlite. Öffne sie mit einem beliebigen SQLite-Browser. Es gibt keine Cloud-Komponente.
Sendet Passoff etwas über das Netzwerk? Nein. Der MCP-Server ist nur stdio. Die CLI telefoniert nicht nach Hause. Das Setup-Skript schreibt nur lokale Konfigurationsdateien.
Können sich zwei Projekte die gleiche DB teilen? Ja — jede Übergabe ist auf einen Projekt-Slug begrenzt. Die DB ist global; die Ansichten sind standardmäßig pro Projekt.
Können zwei KIs bei der gleichen Übergabe kollidieren?
Nein. Das Laden ändert den Status von open auf loaded und stempelt den to_client, aber die Zeile ist über Sitzungen hinweg wieder ladbar, bis du sie archivierst.
Kann ich es mit [einem anderen MCP-Client] verwenden? Wenn der Client MCP über stdio spricht, ja — binde es auf die gleiche Weise ein. Siehe docs/clients.md.
Warum nicht einfach die Konversation kopieren?
Aus drei Gründen: (1) die empfangende KI erhält genau das, was du übergeben wolltest, ohne Rauschen; (2) die Zeile ist prüfbar — from_client, from_model, Zeitstempel; (3) Abstammungsketten über mehrstufige Workflows hinweg.
Status
Alpha. APIs und Speicherstruktur können sich vor 1.0 noch ändern. Die DB migriert sich selbst additiv, aber erwarte gelegentliche Änderungen. Issues und PRs sind willkommen — siehe unten.
Mitwirken
Siehe CONTRIBUTING.md. TL;DR: npm install && npm test, halte PRs fokussiert, bündle keine Memory-Layer oder Orchestratoren in Passoff.
Lizenz
MIT — siehe 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