Skip to main content
Glama

Passoff

Передавайте эстафету между ИИ-агентами для программирования — не теряя нити рассуждений.

CI License: MIT Node Status: alpha

Инструменты памяти хранят всё. Passoff отмечает важные моменты. Одна команда для передачи контекста между Claude Code, Cursor, Codex, Windsurf и любым MCP-клиентом — с полной историей того, какой ИИ и что кому передал.

Почему это нужно

  • Локальность прежде всего. SQLite по адресу ~/.passoff/db.sqlite. Никаких облаков, аккаунтов, API-ключей или телеметрии.

  • Встроенное отслеживание происхождения. Каждая передача записывает from_client, from_model, to_client и временные метки. Протокол MCP фиксирует имя клиента — ИИ не может солгать о том, какой инструмент это написал.

  • Встроенная родословная. Передачи ссылаются на родительские записи, формируя прослеживаемую цепочку между несколькими ИИ и сессиями.

  • Одна задача. Передача контекста. Не память, не оркестрация, не дашборд.

Related MCP server: meridian

30-секундная демонстрация

В Claude Code, при завершении функции:

Вы: /passoff — переключаюсь на Cursor для работы над UI

Claude записывает структурированную передачу в формате markdown и возвращает { id: "ph_aB3x9K" }.

Откройте Cursor, начните новый чат:

Вы: /passoff-load

Cursor вызывает passoff_load({ latest: true }), получает markdown и продолжает работу с того же места.

Отследите цепочку позже:

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

Требуется Node 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 и устанавливает шаблоны слэш-команд. После этого перезапустите каждый ИИ-клиент.

Подключите к вашему MCP-клиенту вручную

Claude Code

claude mcp add passoff -- npx -y passoff serve

Cursor — ~/.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 каждый поддерживаемый клиент получает четыре одинаковые команды (Codex использует /passoff:create и т.д.; Claude Code и Cursor используют /passoff, /passoff-load, /passoff-list, /passoff-search).

Команда

Что она делает

/passoff (create)

Исходящий ИИ записывает структурированную передачу и возвращает её id

/passoff-load

Входящий ИИ загружает последнюю активную передачу (или по id)

/passoff-list

Просмотр недавних передач в текущем проекте

/passoff-search

Полнотекстовый поиск по передачам

MCP-инструменты

Инструмент

Назначение

passoff_create

Исходящий ИИ записывает структурированную передачу

passoff_load

Входящий ИИ загружает по id или latest: true

passoff_list

Просмотр передач в проекте (только метаданные)

passoff_search

Полнотекстовый поиск по передачам (FTS5)

passoff_thread

Показать цепочку родословной передачи

Оператор 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

Хранение и область действия

  • Расположение БД: ~/.passoff/db.sqlite (можно переопределить через PASSOFF_DB_PATH).

  • Область действия проекта: определяется из PASSOFF_PROJECT_ROOT, иначе ближайшая директория .git, иначе cwd. Слаг имеет вид <dir>-<6char hash>, поэтому две директории api/ никогда не конфликтуют.

  • Никакой телеметрии. Никаких сетевых вызовов. Открывайте БД в любом SQLite-браузере.

Passoff против инструментов с общей памятью

У обоих есть свое место. Они решают разные задачи.

Passoff

Инструмент с общей памятью

Примитив

Дискретное, осознанное событие передачи

Постоянно активный пул памяти

Триггер

Вы вводите /passoff

Неявно, при каждом промпте

Что видит следующий ИИ

Ровно то, что предыдущий ИИ решил передать

То, что извлек поиск

Происхождение

Встроено в строку (клиент, модель, родитель)

Дополнительные метаданные

Очистка

Архивирование или удаление атома передачи

Поиск и удаление эмбеддингов

Лучшее для

Переключения инструментов на лету; отслеживания решений

Вспоминания "что мы делали шесть недель назад"

Инструменты памяти отвечают на вопрос "что может быть актуально?". Passoff отвечает на вопрос "вот именно то, что нужно загрузить следующим".

Полное описание позиционирования: docs/design.md.

Часто задаваемые вопросы

Где хранятся мои данные? В одном файле SQLite по адресу ~/.passoff/db.sqlite. Открывайте его любым SQLite-браузером. Облачных компонентов нет.

Отправляет ли Passoff что-либо по сети? Нет. MCP-сервер работает только через stdio. CLI не "звонит домой". Скрипт установки записывает только локальные конфигурационные файлы.

Могут ли два проекта использовать одну БД? Да — каждая передача привязана к слагам проекта. БД глобальна; представления по умолчанию разделены по проектам.

Могут ли два ИИ конфликтовать при одной передаче? Нет. Загрузка меняет статус с open на loaded и проставляет to_client, но строку можно повторно загружать в разных сессиях, пока вы её не архивируете.

Могу ли я использовать это с [другим MCP-клиентом]? Если клиент поддерживает MCP через stdio, да — подключайте его так же. См. docs/clients.md.

Почему бы просто не скопировать переписку? Три причины: (1) принимающий ИИ получает ровно то, что вы решили передать, без лишнего шума; (2) строка поддается аудиту — from_client, from_model, временная метка; (3) родословная прослеживается через многошаговые рабочие процессы.

Статус

Альфа. API и структура хранения могут измениться до версии 1.0. БД мигрирует аддитивно, но ожидайте периодических изменений. Сообщения об ошибках и PR приветствуются — см. ниже.

Участие в разработке

См. CONTRIBUTING.md. TL;DR: npm install && npm test, держите PR сфокусированными, не добавляйте слой памяти или оркестратор в Passoff.

Лицензия

MIT — см. 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