Skip to main content
Glama

Passoff

Pasa el testigo entre agentes de codificación de IA — sin perder el hilo.

CI License: MIT Node Status: alpha

Las herramientas de memoria almacenan todo. Passoff marca los momentos que importan. Un comando para traspasar el contexto entre Claude Code, Cursor, Codex, Windsurf y cualquier cliente MCP — con procedencia completa de qué IA envió qué a quién.

Por qué

  • Local-first. SQLite en ~/.passoff/db.sqlite. Sin nube, sin cuentas, sin claves API, sin telemetría.

  • Procedencia integrada. Cada traspaso registra from_client, from_model, to_client, marcas de tiempo. El protocolo MCP sella el nombre del cliente — la IA no puede mentir sobre qué herramienta lo escribió.

  • Linaje integrado. Los traspasos hacen referencia a los padres, formando una cadena rastreable a través de múltiples IAs y sesiones.

  • Una sola tarea. Traspasos. No memoria, no orquestación, no un panel de control.

Related MCP server: meridian

Demostración de 30 segundos

En Claude Code, terminando una funcionalidad:

Tú: /passoff — cambiando a Cursor para el trabajo de UI

Claude escribe un traspaso en markdown estructurado, devuelve { id: "ph_aB3x9K" }.

Abre Cursor, inicia un nuevo chat:

Tú: /passoff-load

Cursor llama a passoff_load({ latest: true }), obtiene el markdown y reanuda a mitad del pensamiento.

Rastrea la cadena más tarde:

$ 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]

Instalación

npm i -g passoff

Requiere Node 20+.

O ejecutar desde el código fuente:

git clone https://github.com/TheMrGU/passoff && cd passoff
npm install && npm run build
node dist/index.js --help

Configuración de un solo paso

Si el repositorio está clonado localmente, esto conecta Passoff en cada cliente compatible en un solo paso:

npm run setup

Ejecuta npm install + npm run build, registra el servidor MCP con Claude Code (vía claude mcp add si está instalado), escribe/fusiona ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, ~/.codex/config.toml, e instala las plantillas de comandos de barra diagonal. Reinicia cada cliente de IA después.

Conéctalo a tu cliente MCP manualmente

Claude Code

claude mcp add passoff -- npx -y passoff serve

Cursor — ~/.cursor/mcp.json (o .cursor/mcp.json en un proyecto)

{
  "mcpServers": {
    "passoff": { "command": "npx", "args": ["-y", "passoff", "serve"] }
  }
}

Codex — ~/.codex/config.toml

[mcp_servers.passoff]
command = "npx"
args = ["-y", "passoff", "serve"]

Instala los comandos de barra diagonal nativos de Codex:

passoff install --client codex

Esto registra /passoff:create, /passoff:load, /passoff:list y /passoff:search como un plugin local de Codex.

Windsurf, otros

El mismo par de comandos stdio — ver docs/clients.md.

Comandos de barra diagonal

Después de passoff install, cada cliente compatible obtiene los mismos cuatro comandos (Codex usa /passoff:create etc.; Claude Code y Cursor usan /passoff, /passoff-load, /passoff-list, /passoff-search).

Comando

Qué hace

/passoff (create)

La IA saliente escribe un traspaso estructurado y devuelve su id

/passoff-load

La IA entrante carga el traspaso activo más reciente (o uno por id)

/passoff-list

Explora traspasos recientes en el proyecto actual

/passoff-search

Búsqueda de texto completo en los traspasos

Herramientas MCP

Herramienta

Propósito

passoff_create

La IA saliente escribe un traspaso estructurado

passoff_load

La IA entrante carga por id o latest: true

passoff_list

Explora traspasos en un proyecto (solo metadatos)

passoff_search

Búsqueda de texto completo en los traspasos (FTS5)

passoff_thread

Muestra la cadena de linaje de un traspaso

CLI del operador

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

Almacenamiento y alcance

  • Ubicación de la BD: ~/.passoff/db.sqlite (sobrescribir con PASSOFF_DB_PATH).

  • Alcance del proyecto: derivado de PASSOFF_PROJECT_ROOT, de lo contrario el directorio .git más cercano, de lo contrario cwd. El slug es <dir>-<6char hash> para que dos directorios api/ nunca colisionen.

  • Sin telemetría. Sin llamadas de red. Abre la BD en cualquier navegador SQLite.

Passoff vs herramientas de memoria compartida

Ambas tienen su lugar. Resuelven problemas diferentes.

Passoff

Herramienta de memoria compartida

Primitiva

Evento de traspaso discreto y deliberado

Grupo de memoria siempre activo

Disparador

Escribes /passoff

Implícito, en cada prompt

Lo que ve la siguiente IA

Exactamente lo que la IA anterior eligió pasar

Lo que la recuperación haya mostrado

Procedencia

Integrada en la fila (cliente, modelo, padre)

Metadatos añadidos

Limpieza

Archiva o elimina un átomo de traspaso

Persigue incrustaciones

Mejor para

Cambiar de herramienta a mitad del pensamiento; rastrear decisiones

Recordar "qué hicimos hace seis semanas"

Las herramientas de memoria responden a "¿qué podría ser relevante?". Passoff responde a "aquí está exactamente qué cargar a continuación."

Posicionamiento completo: docs/design.md.

Preguntas frecuentes

¿Dónde viven mis datos? Un único archivo SQLite en ~/.passoff/db.sqlite. Ábrelo con cualquier navegador SQLite. No hay componente en la nube.

¿Passoff envía algo a través de la red? No. El servidor MCP es solo stdio. La CLI no llama a casa. El script de configuración solo escribe archivos de configuración locales.

¿Pueden dos proyectos compartir la misma BD? Sí — cada traspaso está limitado a un slug de proyecto. La BD es global; las vistas son por proyecto de forma predeterminada.

¿Pueden dos IAs colisionar en el mismo traspaso? No. La carga cambia el estado open → loaded y sella to_client, pero la fila es recargable a través de sesiones hasta que la archives.

¿Puedo usarlo con [algún otro cliente MCP]? Si el cliente habla MCP sobre stdio, sí — conéctalo de la misma manera. Ver docs/clients.md.

¿Por qué no simplemente pegar la conversación? Tres razones: (1) la IA receptora obtiene exactamente lo que elegiste pasar, no el ruido; (2) la fila es auditable — from_client, from_model, marca de tiempo; (3) el linaje se conecta a través de flujos de trabajo de varios pasos.

Estado

Alfa. Las APIs y la forma del almacenamiento pueden cambiar antes de la versión 1.0. La BD se automigra de forma aditiva, pero espera cambios ocasionales. Presentar problemas y PRs es bienvenido — ver abajo.

Contribuyendo

Ver CONTRIBUTING.md. TL;DR: npm install && npm test, mantén los PRs enfocados, no incluyas una capa de memoria o un orquestador en Passoff.

Licencia

MIT — ver 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