passoff
Passoff
Передавайте эстафету между ИИ-агентами для программирования — не теряя нити рассуждений.
Инструменты памяти хранят всё. 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 для работы над UIClaude записывает структурированную передачу в формате markdown и возвращает
{ id: "ph_aB3x9K" }.
Откройте Cursor, начните новый чат:
Вы:
/passoff-loadCursor вызывает
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 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 каждый поддерживаемый клиент получает четыре одинаковые команды (Codex использует /passoff:create и т.д.; Claude Code и Cursor используют /passoff, /passoff-load, /passoff-list, /passoff-search).
Команда | Что она делает |
| Исходящий ИИ записывает структурированную передачу и возвращает её id |
| Входящий ИИ загружает последнюю активную передачу (или по id) |
| Просмотр недавних передач в текущем проекте |
| Полнотекстовый поиск по передачам |
MCP-инструменты
Инструмент | Назначение |
| Исходящий ИИ записывает структурированную передачу |
| Входящий ИИ загружает по |
| Просмотр передач в проекте (только метаданные) |
| Полнотекстовый поиск по передачам (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Хранение и область действия
Расположение БД:
~/.passoff/db.sqlite(можно переопределить черезPASSOFF_DB_PATH).Область действия проекта: определяется из
PASSOFF_PROJECT_ROOT, иначе ближайшая директория.git, иначеcwd. Слаг имеет вид<dir>-<6char hash>, поэтому две директорииapi/никогда не конфликтуют.Никакой телеметрии. Никаких сетевых вызовов. Открывайте БД в любом SQLite-браузере.
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.
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