Skip to main content
Glama

Passoff

Den Staffelstab zwischen KI-Coding-Agenten weitergeben — ohne den Faden zu verlieren.

CI License: MIT Node Status: alpha

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_client und 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-Arbeit

Claude schreibt eine strukturierte Markdown-Übergabe und gibt { id: "ph_aB3x9K" } zurück.

Öffne Cursor, starte einen neuen Chat:

Du: /passoff-load

Cursor 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 passoff

Erfordert 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 --help

One-Shot-Einrichtung

Wenn das Repository lokal ausgecheckt ist, verbindet dies Passoff in einem Schritt mit allen unterstützten Clients:

npm run setup

Es 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 serve

Cursor — ~/.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 codex

Dies 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

/passoff (create)

Die ausgehende KI schreibt eine strukturierte Übergabe und gibt ihre ID zurück

/passoff-load

Die eingehende KI lädt die letzte aktive Übergabe (oder eine nach ID)

/passoff-list

Durchsuche kürzliche Übergaben im aktuellen Projekt

/passoff-search

Volltextsuche über alle Übergaben

MCP-Tools

Tool

Zweck

passoff_create

Ausgehende KI schreibt eine strukturierte Übergabe

passoff_load

Eingehende KI lädt per id oder latest: true

passoff_list

Durchsuche Übergaben in einem Projekt (nur Metadaten)

passoff_search

Volltextsuche über Übergaben (FTS5)

passoff_thread

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 templates

Speicherung & Scoping

  • DB-Speicherort: ~/.passoff/db.sqlite (überschreibbar mit PASSOFF_DB_PATH).

  • Projekt-Scoping: abgeleitet von PASSOFF_PROJECT_ROOT, sonst das nächste .git-Verzeichnis, sonst cwd. Der Slug ist <dir>-<6char hash>, damit zwei api/-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 /passoff

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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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.
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Persistent 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    11
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    12
    12 npm
    2
    MIT