chat-across
chat-across
Английский | 中文
Один крошечный MCP-сервер, который позволяет вашим ИИ-агентам разработки работать над одним проектом как одна команда — сегодня это Claude Code, Codex и Kimi Code, расширяется на любого агента, сохраняющего сессии (добавление вендора занимает ~60 строк). Привяжите сессию к именованному окружению одной слэш-командой, и каждый агент сможет читать, что делают другие, прямо из их родных файлов, без копирования.
Он подстраивается под ваше окружение и рабочий процесс — а не наоборот. Установите один MCP-сервер и продолжайте работать именно там, где вы уже работаете: Codex App, Claude Code / Desktop, Kimi Code, бок о бок или по одному. Никакого централизованного GUI, никакого нового TUI, никакого приложения для переключения, ничего мигрировать. Ваши агенты остаются вашими; они просто перестают быть чужими друг для друга.
Claude Code ─┐
Codex App ──┼──► chat-across bridge (stdio MCP) ──► one small SQLite (pointers + briefs only)
Kimi Code ──┘ │
└─ reads peers' NATIVE session / memory / docs in place — nothing duplicatedСлэш-команды
Пять команд покрывают всё. В Claude Code и Kimi Code это слэш-команды; в Codex введите $ и выберите навык с тем же именем.
Команда | Что происходит |
| Привязывает эту сессию к окружению |
| Ручное обновление: отправить обновлённую сводку, получить последние сводки пиров. Агенты также делают это сами после каждой значимой вехи, так что вам это редко нужно. |
| Отвязывает. Сессия возвращается в полную изоляцию — все инструменты общих данных переходят в режим fail-closed, пока она снова не привяжется. |
| Список всех окружений на мосту: какие вендоры внутри, сколько сессий его касались, когда оно последний раз изменялось. |
| Удаляет окружение: стирает его сводки и указатели, освобождает имя. Вызванная без имени, она перечисляет окружения и спрашивает — она никогда не удаляет вслепую. Только служебный учёт моста; ничьи транскрипты, воспоминания или файлы не затрагиваются. |
Всё, что делает команда, также достижимо обычным языком — «удали окружение project1», «какие есть окружения», «продолжи то, что делал Codex» — всё работает.
Related MCP server: agent-context-mcp
Что вы получаете
Привязка — окружения как точки встречи
Окружение — это просто уникальное имя (project1, mcp, что угодно). Сессии привязываются к нему; привязанные сессии обмениваются данными; непривязанные сессии физически снаружи — fail-closed, без обмена, без загрязнения. Имена — это идентичность: подключение с существующим именем всегда присоединяет к нему, так что никогда не бывает двух project1.
Tool | What it does |
| Создаёт или подключает по имени. Регистрирует указатель на собственный родной транскрипт этой сессии (агенты передают UUID своей сессии, чтобы пиры могли читать её), и возвращает последнюю сводку каждого пира — одно подключение уже показывает состояние всей команды. |
| Отвязывает; все ограниченные инструменты снова переходят в режим fail-closed. |
Сводки — слой «чем занят каждый»
Каждая сессия хранит на мосту одну сжатую рабочую сводку (цель / сделано / ключевые решения / далее), обновляемую на месте — ограничена 32KB, одна строка на сессию, поэтому хранилище физически не может расти. Сводки несут байтовую метку транскрипта автора, поэтому читатели видят behindBytes: сколько именно произошло с момента записи сводки. Устаревание — это измеряемое число, а не догадка.
Пиры идентифицируются по нативному UUID сессии, а не по вендору — несколько сессий одного вендора остаются различимыми (два экземпляра Claude в цикле автоматизации сохраняют собственные сводки), а та же сессия, переподключающаяся через перезапущенный MCP-сервер, дедуплицируется в одну запись. Передайте sessionUuid (показан у каждого пира) любому инструменту сквозного чтения, чтобы адресовать одну конкретную сессию.
Tool | What it does |
| Отправить собственную сводку (upsert + метка), получить последние сводки пиров — один вызов в обоих направлениях. |
Сквозное чтение родных файлов — ради чего этот проект
На мост ничего не копируется. Когда агенту нужно узнать, что сделал пир, мост определяет, где собственное приложение пира уже хранит это, и разбирает его на месте, по требованию:
Tool | Reads | Detail |
| Родной транскрипт сессии пира (проектный | Последние N обменов (по умолчанию 10, максимум 50), байтовый поиск с конца файла — живой, заблокированный на запись rollout на 660MB отвечает за однозначное число миллисекунд. Пропускает субтреды-хранители Codex, отфильтровывает шум обвязки, маскирует строки, по форме похожие на секреты. |
| Родное хранилище памяти пира | Claude: каталог памяти проекта. Codex: пользовательское хранилище, отфильтрованное по тегам |
| Постоянные правила проекта пира |
|
Вместе: сводка = что они делают, хвост = точные последние слова, память = чему они научились, инструкции = правила проекта. Полный контекст для передачи дел одним подключением.
Идентичность проекта выводится, а не настраивается: собственные артефакты пира несут его cwd (Codex session_meta, записи jsonl Claude, state.json Kimi). Работает, даже если сессия пира закрыта, упала или исчерпала квоту — мост читает файлы, а не живые процессы.
Жизненный цикл — видимость и очистка
Tool | What it does |
| Каждое окружение с присутствующими вендорами, количеством сессий и последней активностью — вопрос «какой это project1» отвечает сам собой. |
| Стирает окружение по точному имени и освобождает его. Устаревшие строки также самоудаляются через 14 дней в любом случае. |
Повседневное использование
/chat-across myproject # Claude / Kimi (Codex: type $ and pick chat-across)Вот и всё. Агент привязывается, отправляет свою сводку, получает сводки остальных и рассказывает вам, чем заняты другие агенты. Далее:
«Продолжи то, что делал Codex» → агент получает хвост Codex + память + документацию проекта и продолжает с последнего предложения.
«Какие есть окружения?» →
/chat-across-listили просто спросите.«Начни project1 заново, начисто» →
/chat-across-delete project1, затем/chat-across project1.
Новая сессия, та же нить
Сессии тоже являются пирами — включая ваши собственные старые. Откройте совершенно новую сессию (того же вендора или другого), привяжитесь к тому же окружению, и сводка предыдущей сессии придёт вместе с подключением. Скажите «продолжи с того места, где остановилась моя последняя сессия» — и агент прочитает родной хвост той сессии и продолжит с последнего предложения.
Это работает, даже если старая сессия закрыта, упала или исчерпала лимит контекста — мост читает файл её транскрипта, а не живой процесс. Возобновление средствами вендора (claude --resume, список сессий Codex) остаётся первым выбором для обычных перезапусков того же вендора; это структурированный запасной вариант, который также переживает сжатие контекста, смену квоты и переходы между вендорами. Единственное требование: старая сессия хотя бы раз привязалась, пока была жива.
Установка
Четыре шага: установите пакет → зарегистрируйте его в каждом хосте → установите шаблоны слэш-команд → перезапустите хосты. Работает на Windows / macOS / Linux (Node ≥ 20), без клонирования, без сборки.
1. Установите пакет
npm install -g chat-acrossЭто добавляет команду chat-across в ваш PATH, а пакет (сервер + шаблоны) — в глобальный каталог npm — npm root -g выводит точное расположение; пакет находится по пути <that path>/chat-across.
2. Зарегистрируйте сервер в каждом хосте
Один и тот же сервер везде, отличается только метка:
# Claude Code
claude mcp add chat-across -s user --env CHATACROSS_HOST_LABEL=claude-code -- chat-across# ~/.codex/config.toml — add this section
[mcp_servers.chat-across]
command = "chat-across"
env = { CHATACROSS_HOST_LABEL = "codex-app" }// ~/.kimi-code/mcp.json — merge into mcpServers
{ "mcpServers": { "chat-across": {
"command": "chat-across",
"env": { "CHATACROSS_HOST_LABEL": "kimi-code" } } } }Не хотите устанавливать глобально? Используйте npx -y chat-across в качестве команды во всех трёх конфигах. Разрабатываете или хотите внести вклад? git clone + npm install + укажите в конфигах node <repo>/src/server.mjs.
3. Установите слэш-команды
Папка examples/ поставляется внутри npm-пакета. Скопируйте её шаблоны в каталог команд/навыков каждого хоста — они дают каждому агенту пять команд /chat-across* и учат его автоматически сжимать + отправлять + получать при подключении, а также передавать свой UUID сессии.
macOS / Linux:
EX="$(npm root -g)/chat-across/examples"
mkdir -p ~/.claude/commands ~/.kimi-code/commands ~/.codex/skills
cp "$EX"/claude-commands/*.md ~/.claude/commands/
cp "$EX"/claude-commands/*.md ~/.kimi-code/commands/
cp -r "$EX"/codex-skills/* ~/.codex/skills/Windows (PowerShell):
$ex = Join-Path (npm root -g) 'chat-across\examples'
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\commands", "$env:USERPROFILE\.kimi-code\commands", "$env:USERPROFILE\.codex\skills" | Out-Null
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.claude\commands\"
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.kimi-code\commands\"
Copy-Item "$ex\codex-skills\*" "$env:USERPROFILE\.codex\skills\" -Recurse -Force4. Перезапустите и проверьте
Перезапустите каждое приложение-хост, чтобы оно прочитало новую конфигурацию MCP, затем проверьте:
Claude Code:
claude mcp list→chat-across … ✔ ConnectedCodex:
codex mcp get chat-across→enabled: true; при вводе$должны предлагаться навыкиchat-acrossKimi: спросите его: «какие у тебя есть инструменты chat-across»
Введите /chat-across test в любом из них — created: true означает, что мост жив.
Please specify the target language for the translation.
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Memory for AI agent teams across tools, sessions, repositories, and teammates.
- BeepOAuthapp.getbeep
Shared memory for AIs. Share a project with anyone and their AI knows everything yours does.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI 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
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to read each other's conversation history read-only and sanitized, so you can continue work across different tools without re-explaining context.MIT
- AlicenseAqualityCmaintenanceEnables any AI coding agent to instantly find and resume sessions created in another agent. It indexes sessions from multiple harnesses locally and injects a compact, ready-to-resume payload without using LLM tokens.41MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to ask the user questions, receive written replies, share files, and hand tasks to other agent sessions — with every cross-agent request routed through human approval first. Sessions register themselves so they can be read, woken, and answered from a phone over a local-first, self-hosted setup.2Apache 2.0